brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · b41d298 Raw
49 lines · python
1#!/usr/bin/env python2# Copyright 2009 Simon Arlott3#4# This program is free software; you can redistribute it and/or modify it5# under the terms of the GNU General Public License as published by the Free6# Software Foundation; either version 2 of the License, or (at your option)7# any later version.8#9# This program is distributed in the hope that it will be useful, but WITHOUT10# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or11# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for12# more details.13#14# You should have received a copy of the GNU General Public License along with15# this program; if not, write to the Free Software Foundation, Inc., 5916# Temple Place - Suite 330, Boston, MA  02111-1307, USA.17#18# Usage: cxacru-cf.py < cxacru-cf.bin19# Output: values string suitable for the sysfs adsl_config attribute20#21# Warning: cxacru-cf.bin with MD5 hash cdbac2689969d5ed5d4850f11770211022# contains mis-aligned values which will stop the modem from being able23# to make a connection. If the first and last two bytes are removed then24# the values become valid, but the modulation will be forced to ANSI25# T1.413 only which may not be appropriate.26#27# The original binary format is a packed list of le32 values.28 29import sys30import struct31 32i = 033while True:34	buf = sys.stdin.read(4)35 36	if len(buf) == 0:37		break38	elif len(buf) != 4:39		sys.stdout.write("\n")40		sys.stderr.write("Error: read {0} not 4 bytes\n".format(len(buf)))41		sys.exit(1)42 43	if i > 0:44		sys.stdout.write(" ")45	sys.stdout.write("{0:x}={1}".format(i, struct.unpack("<I", buf)[0]))46	i += 147 48sys.stdout.write("\n")49