Android G1 unter FreeBSD

wuz666

Member
Hi!

Ich habe mir ein Android G1 geleistet und moechte mit diesem unter FreeBSD entwickeln. Entwicklungsumgebung, Emulator, etc. habe ich erfolgreich zum laufen bekommen.
Ich kann das Handy auch mounten (um auf die SD Karte zuzugreifen). Allerdings schaffe ich es nicht, direkt auf der Hardware zu debuggen.

Die Anleitung auf der Android Homepage ist nur fuer Ubuntu, Win und Mac.
Fuer Ubuntu:
If you're developing on Ubuntu Linux, you need to add a rules file:

1. Login as root and create this file: /etc/udev/rules.d/50-android.rules.

For Gusty/Hardy, edit the file to read:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"

For Dapper, edit the file to read:
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"

Ich wollte dasselbe fuer mein PCBSD machen allerdings finde ich keine man-pages zu udev.
Nun meine Frage, funktioniert udev ueberhaupt unter BSD (es gibt ja einen Eintrag in /etc/udev/*.rules - allerdings finde ich in der FreeBSD documentation nichts zu udev, sondern nur zu devfs).
Muss ich das ganze nun mit devfs bewerkstelligen?
Falls BSD udev unterstuetzt, gibt es einen aequivalenten Befehl zu udevinfo?

Wenn mir jemand ein wenig auf die Spruenge helfen koennte, waere ich sehr dankbar!

Es waere auch interessant zu wissen, ob es schon Leute gibt, die erfolgreich unter BSD fuer Android programmieren (und vor allem auf dem Handy debuggen koennen!!!)

Danke fuer eure Hilfe im Voraus
(Ich hoffe das Subforum passt - ist ja eigentlich Hardware :))

mfg wuz
 
Nachtrag:

Mit dem Befehl sysctl dev bekomme ich folgende Ausgabe:
dev.umass.0.%desc: HTC Android Phone, class 0/0, rev 1.02/1.00, addr 2
dev.umass.0.%driver: umass
dev.umass.0.%location: port=6 interface=0
dev.umass.0.%pnpinfo: vendor=0x0bb4 product=0x0c02 devclass=0x00 devsubclass=0x00 release=0x0100 sernum="HT123TR12345" intclass=0x08 intsubclass=0x06
dev.umass.0.%parent: uhub4

Das bedeutet doch, dass das Geraet bereits konfiguriert ist.
Jetzt brauche ich also "nur" noch den richtigen eintrag in /etc/udev oder doch in etc/devfs.rules ?

Irgendwie will es nicht so, wie ich will ;'(

mfg
 
Nein, nein. Udev ist ein Linuxismus. Der Kernel generiert Nachrichten, welche aus dem Userland heraus von Diensten abgefragt werden können. Einer dieser Dienste ist der berüchtigte Udev, welcher anhand der Nachrichten die Einträge in /dev generiert und entfernt. Der Freedesktop.org HAL nutzt ebenfalls diesen Mechanismus, den es unter FreeBSD nur in anderer Form gibt, was da ab und an mal Zicken macht. FreeBSD nutzt für die Geräte unter /dev devfs. Die Geschichte läuft komplett im Kernel, der Kernel selbst legt die Gerätedateien an und entfernt sie wieder. Um Rechte und so weiter zu übergeben, kann man zwei Dienste nutzen. Der eine ist Devd, dieser hocht auf Änderungen in /dev und reagiert auf sie. Damit kann man so tolle Dinge machen wie "wenn Maus eingesteckt, starte den Moused-Daemon". Konfiguriert wird er in /etc/devd.conf. Daneben gibt es die "rules", Regelsätze zu Berechtigungen, die in den Kernel geladen und von diesem beachtet werden. Das ist sicher das was du willst. Wie das genau funktioniert ist mit Beispiel und Hinweis auf das Laden des korrekten Regelsatzes zur Bootzeit in der Manpage beschrieben: http://www.freebsd.org/cgi/man.cgi?...ion=0&manpath=FreeBSD+7.0-RELEASE&format=html

Daneben gibt es noch die /dev/devfs.conf. Darein kannst du auch Regeln eintragen, diese werden aber nur und wirklich nur(!) dann übernommen, wenn das Gerät beim Hochfahren des Systems schon vorhanden ist. Ich würde das Ding nicht mehr nutzen, ist einfach unpraktisch.
 
Hi!

Danke fuer deine ausfuehrlichen Erklaerungen, habe zwar einiges herausgefunden aber leider funktioniert es noch nicht so, wie ich will...

Falls sich was neues ergibt, werde ich es hier posten.

mfg wuz
 
Zurück
Oben