BlogBilderÜber michKontakt

Fitzbox 3170 scanner support with SANE

With the FritzBox from AVM (Product Page) you can do amazing things like adding and compile sane as a part of the FritzBox. This can be done by changing the firmware. You will need some Linux knowlege for this.

This is my configuration:
Fritzbox: 3170
PC: Leopard OSx86
Notebook: Windows XP Pro
MacBook Pro: Leopard
Scanner: Mustek BearPaw 1200TA
Printer: Brother DCP-7010

The PC is connected via ethernetcable.
Macbook and Notebook via WLAN.
Scanner and Printer are connected both with an USB-HUB to the Fritzbox.

To build a new firmware for the Fritzbox you will need the following packages:

[Info] modification danisahne: ds26-15.2.tar.bz2
[Link] http://www.ip-phone-forum.de/showthread.php?t=144646
[Link] http://wiki.ip-phone-forum.de/software:ds-mod:start

[Info] SANE: sane-backends-1.0.18.tar.gz
[Link] http://www.sane-project.org/

[Info] Scanner driver: gt68xx-backend-only-1.0-84.tar.gz
[Link] http://meier-geinitz.de/sane/gt68xx-backend/
[Hint] If you have another scanner check http://www.sane-project.org/sane-supported-devices.html. This is not nesessary if you have another scanner.

[Info] The Firmware for my scanner: A1fw.usb
[Link] http://meier-geinitz.de/sane/gt68xx-backend/
[Hint] Only a few scanners need firmware.

[Info] A ready-to-build VMware image: StinkyLinux V1.05
[Link] http://www.ip-phone-forum.de/showthread.php?t=146502
[Hint] I used this VMware image because it save many time but if you are experienced enough on compiling things on Linux you can make it your way.

Lets build the Firmware:

Start you VMware StinkyLinux and login (slightly:stinky).
make a Fritzbox directory
mkdir /fritzbox
put the files in the folder
ds26-15.2.tar.bz2
sane-backends-1.0.18.tar.gz
gt68xx-backend-only-1.0-84.tar.gz
A1fw.usb
decompress ds-mod
tar -jxvf ds26-15.2.tar.bz2
enter the decompressed directory and configure the mod
cd /fritzbox/ds26-15.2
make menuconfig
choose YOUR settings!! Like Hardware type and others. This is MY example
--- General --------------------------------
Hardware type (WLAN 3170) --->
Firmware language (de - deutsch) --->
[ ] Replace kernel
--- Brandings ------------------------------
[*] AVM
--- Patches --------------------------------
[*] Remove help
[*] Remove assistant
[*] Remove cdrom.iso
[*] Patch USB storage names
[ ] Replace AVM web server by httpd - EXPERIMENTAL
[ ] Remove UPnP daemon (igdd) - EXPERIMENTAL
[ ] Integrate Media Server from USB Labor firmware - EXPERIMENTAL
--- Mod ------------------------------------
Language (de - deutsch) --->
exit and SAVE YOUR settings

decompress SANE and build it with the newest scanner driver
cd /fritzbox/
tar -zxvf sane-backends-1.0.18.tar.gz
cd sane-backends-1.0.18
cp ../gt68xx-backend-only-1.0-84.tar.gz .
tar -zxvf gt68xx-backend-only-1.0-84.tar.gz
./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux --prefix=
make CC="mipsel-linux-gcc" CFLAGS="-Os -pipe -march=4kc -Wa,--trap"
create SANE as an addon for the Fritzbox
mkdir -p /fritzbox/ds26-15.2/addon/sane-backends-1.0.18/root/bin/
mkdir -p /fritzbox/ds26-15.2/addon/sane-backends-1.0.18/root/etc/sane.d/
mkdir -p /fritzbox/ds26-15.2/addon/sane-backends-1.0.18/root/etc/hotplug/
mkdir -p /fritzbox/ds26-15.2/addon/sane-backends-1.0.18/root/lib/sane/
mkdir -p /fritzbox/ds26-15.2/addon/sane-backends-1.0.18/root/share/sane/gt68xx/
copy the files and create some symlinks
cd /fritzbox/sane-backends-1.0.18
cp frontend/.libs/* ../ds26-15.2/addon/sane-backends-1.0.18/root/bin/
cp tools/sane-config ../ds26-15.2/addon/sane-backends-1.0.18/root/bin/
cp tools/sane-find-scanner ../ds26-15.2/addon/sane-backends-1.0.18/root/bin/
cp tools/gamma4scanimage ../ds26-15.2/addon/sane-backends-1.0.18/root/bin/

cp backend/.libs/libsane.so.1.0.18 ../ds26-15.2/addon/sane-backends-1.0.18/root/lib/
cd ../ds26-15.2/addon/sane-backends-1.0.18/root/lib/
ln -s libsane.so.1.0.18 libsane.so.1
ln -s libsane.so.1.0.18 libsane.so
cd /fritzbox/sane-backends-1.0.18
cp backend/.libs/libsane-gt68xx.so.1.0.18 ../ds26-15.2/addon/sane-backends-1.0.18/root/lib/sane/
cp backend/.libs/libsane-dll.so.1.0.18 ../ds26-15.2/addon/sane-backends-1.0.18/root/lib/sane/
cd ../ds26-15.2/addon/sane-backends-1.0.18/root/lib/sane/
ln -s libsane-gt68xx.so.1.0.18 libsane-gt68xx.so.1
ln -s libsane-gt68xx.so.1.0.18 libsane-gt68xx.so
ln -s libsane-dll.so.1.0.18 libsane-dll.so.1
ln -s libsane-dll.so.1.0.18 libsane-dll.so

cd /fritzbox/sane-backends-1.0.18
create the configs for SANE with an Linux editor like joe,vi or your favorite
joe ../ds26-15.2/addon/sane-backends-1.0.18/root/bin/saned_wrapper
#!/bin/sh
(while true; do /bin/saned -d; done) >/dev/null 2>/dev/null &
make it executable
chmod 755 ds26-15.2/addon/sane-backends-1.0.18/root/bin/saned_wrapper
joe ../ds26-15.2/addon/sane-backends-1.0.18/root/etc/sane.d/dll.conf
gt68xx
make sure you enter the right SUBNET!!!
joe ../ds26-15.2/addon/sane-backends-1.0.18/root/etc/sane.d/saned.conf
192.168.2.0/24
cp backend/gt68xx.conf ../ds26-15.2/addon/sane-backends-1.0.18/root/etc/sane.d/
integrate the scanner firmware
cd /fritzbox/
cp A1fw.usb ds26-15.2/addon/sane-backends-1.0.18/root/share/sane/gt68xx/
change the hotplug script from the original firmware to start the saned deamon
cp ds26-15.2/build/original/filesystem/etc/hotplug/printer ds26-15.2/addon/sane-backends-1.0.18/root/etc/hotplug/scanner
edit the script add the following after the #
joe ds26-15.2/addon/sane-backends-1.0.18/root/etc/hotplug/printer
# Starting printserver...
/bin/saned_wrapper

# Stop it all...
killall saned_wrapper

cleanup if you used joe as editor
rm /fritzbox/ds26-15.2/addon/sane-backends-1.0.18/root/etc/hotplug/printer~
rm /fritzbox/ds26-15.2/addon/sane-backends-1.0.18/root/bin/saned_wrapper~
ok now make the firmware
cd /fritzbox/ds26-15.2/
make

this will take some time depends on your hardware configuration

well at this point i will not give any guarantee that this will work.
YOU CAN DAMAGE YOUR FRITZBOX!
if something goes wrong so please Don't bother me if you DAMAGE your box
YOU DO THIS ON YOUR OWN RISK!

Flashing the Fritzbox:


Get the new image and use the firmware-update from the web interface to update the box.

After flashing you can login to the ds-mod webinterface (http://your.box.ip:81) and follow the instructions.
If you have configured the ds-mod you can start the telnetd with the webinterface.

Telnet to your box and try to list the scanner
/$ scanimage -L
device `gt68xx:libusb:001:005' is a Mustek BearPaw 1200 TA flatbed scanner

Clients to scan:

Now you can use sane-twain clients to scan
For Tiger and Leopard check this http://www.ellert.se/twain-sane/
For Windows try http://sanetwain.ozuzo.net/

Thanks to clawiter for the inspiration and this thread.

SnE
Kommentare (0)  Permalink

_CFGetHostUUIDString Final Extension FIX

There is now final extension fix from #leopard @ irc.osx86.hu.

You can get it here.
Unpack it an place it to /System/Library/Extensions/IONetworkingFamily.kext/Contents/MasOS/
If you used my workaround please restore your backup of NetworkInterfaces.plist.

This fix will set IOBuiltin = true for all network devices.

SnE
Ähnliche Beiträge:
_CFGetHostUUIDString Error WORKAROUND/FIX
Kommentare (7)  Permalink

_CFGetHostUUIDString Error WORKAROUND/FIX

This workaround will help you to remove the "_CFGetHostUUIDString: unable to determine UUID for host. Error: 35" error.

1.) BACKUP your /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
2.) Open /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
3.) ADD AFTER <string>Ethernet</string></dict> the following:
<dict>
<key>BSD Name</key>
<string>en3</string>
<key>IOBuiltin</key>
<false/>
<key>IOInterfaceType</key>
<integer>6</integer>
<key>IOInterfaceUnit</key>
<integer>3</integer>
<key>IOLocation</key>
<string></string>
<key>IOMACAddress</key>
<data>
ABbPoF5V
</data>
<key>IOPathMatch</key>
<string>IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P3@1C,2/
IOPCI2PCIBridge/pci14e4,4311@0/AirPort_Brcm43xx/IO80211Interface</string>
<key>SCNetworkInterfaceType</key>
<string>IEEE80211</string>
</dict>

4.) IF you have more than 3 interfaces or there is an "en3" interface change it to "en4" or a higher number, don't forget to change this "<integer>3</integer>" to "<integer>4</integer>".
5.) You need to REBOOT
6.) If this work for you please tell me.
7.) If this workaround did not work please provide your system.log and your NetworkInterfaces.plist.

Why does this error happen?
Well at looking at the source code of the configd there is a plugin "InterfaceNamer" it seams the plugin will always skip interfaces
that are IOBuiltin = false. The "<key>IOBuiltin</key>" cannot be changed because the plugin will check and restore it on next boot.
But it does not check if wireless interfaces <key>SCNetworkInterfaceType</key><string>IEEE80211</string> are IOBuiltin.
Like I say this is only a workaround and there will be more need of testing.

You will find me on irc

SnE
Ähnliche Beiträge:
_CFGetHostUUIDString Final Extension FIX
Kommentare (24)  Permalink
1-3/3