Ich experimentiere in der letzten Zeit etwas mehr mit PC-BSD herum und so langsam verdrängt es sogar seinen Vater FreeBSD von meinem Desktop….

Der angenehme Vorteil von PC-BSD ist, dass es bereits viele Kleinigkeiten für den Desktopeinsatz „fertig“ vorhält. Man muss nicht erste jede Kleinigkeit selbst konfigurieren (ich werde SO faul). Der Nachteil ist, man lernt nix mehr 🙁 Wie auch immer…

Ich wollte gerade eine CD brennen, starte mein xfburn und dieses erzählt mir es könne keinen Brenner finden oder die Berechtigungen würden nicht stimmen.

** (xfburn:12447): WARNING **: No drives were found! If this is in error, check the permissions

Nanu?!?! Als erstes wollte ich die Berechtigungen ausschließen:

$ pc-su xfburn
Passwort:** Message: Using elementar transcoder.

Brennen klappt… Also wirklich ein Problem mit den Berechtigungen. Dann schauen wir sie uns mal durch..

Der Brenner ist im Notebook das Device /dev/cd0 mal sehen…

$ ls -lisa /dev/cd0
105 0 crw-rw-rw-  1 root  operator  0x69 21 Jan 07:40 /dev/cd0

Sieht doch gut aus… Viele Anwendungen nutzen aber einen Link um auf das jeweilige Laufwerk zuzugreifen, auch wenn es der Brenner nicht tun sollte, denn… (dazu später)… mal schauen und gelesen haben stört aber nicht 🙂

$ ls -lisa /dev/cdrom
131 0 lrw-rw-rw-  1 root  wheel  3 21 Jan 07:43 /dev/cdrom -> cd0
$ ls -lisa /dev/dvd
132 0 lrw-rw-rw-  1 root  wheel  3 21 Jan 07:43 /dev/dvd -> cd0

Pass bei mir aber auch, sollte es nicht passen hilft bei Symlinks ein chmod -h 0666…. Nur würde es beim Problem mit dem Brenner nicht helfen! Warum? Nun ja, wer sich an „früher“ unter Linux erinnert, da musste man auch ein Modul laden, welches aus dem ATA Brenner einen SCSI Brenner für den Kernel macht. Funktioniert noch immer ähnlich, ist aber inzwischen im Linux Kernel verklappt. Unter BSD muss man noch immer dafür sorgen. Dafür müssen in der Datei /boot/loader.conf folgende Einträge erstellt werden:

atapicam_load="YES" 
hw.ata.atapi_dma="1"

Der erste Eintrag sorgt dafür, dass der ATA Brenner als „SCSI“ Laufwerk ~erkannt~ wird, der zweite aktiviert den DMA Zugriff auf ATA Laufwerke. Ich meine dass im Kernel vom PC-BSD bereits per Default DMA für ATA Geräte aktiviert ist, schadet aber nicht! Ach ja, in meiner PC-BSD loader.conf gab es den nötigen Eintrag bereits. Es war also schon richtig, denn noch ging es nicht 🙁

Macht nix, weiter suchen! Ist das Modul geladen, sollte mir camcontrol nun meine ATA Geräte auflisten können, inkl. deren SCSI ID und dem zugehörigen passthrue Device:

$ camcontrol devlist
<ST500LM000-1EJ162 DEM8>           at scbus0 target 0 lun 0 (ada0,pass0)
<TSSTcorp DVD+-RW SU-208CB D200>   at scbus1 target 0 lun 0 (cd0,pass1)
<AHCI SGPIO Enclosure 1.00 0001>   at scbus4 target 0 lun 0 (ses0,pass2)

Perfekt…

cd0 stimmt, habe ich bereits kontrolliert. pass1? Mal sehen:

$ ls -lisa /dev/pass1
76 0 crw-------  1 root  operator  0x4c Jan 21 07:40 /dev/pass1

Na schau mal einer an 😀 Zum Test setzte ich mal passende Rechte auf das Device und starte dann als User mein Brennprogramm.

$ chmod 0666 /dev/pass1

Geht… Dann soll es so bleiben! Nach einem Reboot wären meine vergebenen Rechte wieder weg. Damit diese bleiben muss ich meinen Wunsch in der Datei /dev/devfs.conf hinterlegen. Ein Blick in diese verrät mit, dass sich schon jemand Gedanken gemacht hat (pc-bsd halt…). So sind bereits passende Rechte für das Gerät /dev/pass0 gesetzt. Nur eben nicht für /dev/pass1. Es lässt sich also einfach der Eintrag von pass0 für pass1 kopieren:

/etc/devfs.conf
....
# Commonly used by many ports 
link    cd0     cdrom 
link    cd0     dvd 
....
# Allow all users to access CD's  
perm    /dev/acd0       0666 
perm    /dev/cd0        0666 
....
# Misc other devices 
own     /dev/lpt0       root:cups
perm    /dev/lpt0       0666
own     /dev/lpt1       root:cups
perm    /dev/lpt1       0666
perm    /dev/pass0      0666
perm    /dev/pass1      0666 
....

Nur ein Detail welches noch beim PC-BSD fehlt um es für den Benutzer beim Brennen noch einfacher zu machen. Wenn auch ein Detail, was Benutzer ohne FreeBSD Vorkentnisse ins Straucheln bringen könnte.

In diesem Sinne….