[Linux 2.6]Modules van devices loskoppelen?

Pagina: 1
Acties:

  • MadEgg
  • Registratie: Februari 2002
  • Laatst online: 20:12

MadEgg

Tux is lievvv

Topicstarter
Is dat mogelijk?

Voorbeeldje:
Ik heb een iPod(HD MP3-speler). Deze is met firewire aangesloten op mijn Linux bakkie.

Deze is dan verder weer aan te spreken met de SBP2 driver die dan via sd_mod en de scsi-stack(waarom moet dit zo omslachtig??) een /dev/sda device aanmaakt waarna ik deze kan mounten.

Er verschijnt dan op de iPod zo'n leuk berichtje dat je hem niet mag loskoppelen.

Dat bericht krijg ik weer weg door de SBP2 driver van de iPod los te koppelen. De enige manier waarop ik dat voor elkaar krijg is door de SBP2 driver te onladen. En daar heb ik soms geen zin in, bovendien kan alleen root dat doen. En dan werken gelijk alle andere SBP2 devices ook niet meer(ja ik heb soms 2 iPod's tegelijk aangesloten).
Nou weet ik dat het verder niet uitmaakt als ik de iPod toch loskoppel als hij maar niet gemount is. Maar da's natuurlijk niet zo netjes. >:)

Dus is er een manier om een kernel-module los te koppelen van een bepaald device, en alleen dat device? Op de Mac en in Windows blijkt dit gewoon mogelijk te zijn, maar op Linux krijg ik het maar niet voor elkaar.

Hiernaar zoeken heeft me 0% relevante informatie opgeleverd, ik schijn de eerste te zijn die dit opvalt :?

Tja


  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 04-12-2025
sd_mod en scsi_stack zjin algemene SCSI modules, daar heeft je probleem niets mee te maken. Wat je zoekt zou door de SBP2 module moeten worden onderstuend, maar dat is blijkbaar niet zo. Ik denk dat er niet zo veel ontwikkelaars zjin met twee ipods. ;)

Op deze site staat wel wat relevante info over het ontkoppelen van sbp2 devices:
http://www.linux1394.org/sbp2.html

en zo te zien kan je via de /proc interface precies aangeven welk device je wilt ontkoppelen. Er zal alleen nog wel een GUI voor zijn - kan je programmeren? :D

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • MadEgg
  • Registratie: Februari 2002
  • Laatst online: 20:12

MadEgg

Tux is lievvv

Topicstarter
Met TCL/TK is daar best snel wat voor in elkaar te vogelen.

Maar helaas helpt het niet echt :(.

Als ik remove-single-device naar /dev/scsi/scsi echo dan verdwijnt /dev/sda(1/2) en wordt ik uitgelogd :? 'dmesg' geeft daarna een zootje errors:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
releasing anticipatory io scheduler
Unable to handle kernel NULL pointer dereference at virtual address 00000001
 printing eip:
00000001
*pde = 00000000
Oops: 0000 [#2]
PREEMPT
CPU:    0
EIP:    0060:[<00000001>]    Tainted: P   VLI
EFLAGS: 00010202
EIP is at 0x1
eax: e57d7d80   ebx: e1101000   ecx: 00000001   edx: e1101000
esi: e1101010   edi: 00000296   ebp: e559de9c   esp: e559de90
ds: 007b   es: 007b   ss: 0068
Process bash (pid: 20356, threadinfo=e559c000 task=e92da080)
Stack: c026f498 e1101000 e57d7d80 e559deb0 c0271585 e1101000 d680d424 d680d400
       e559decc c02a6672 e1101000 ee2120b0 00000000 c03fee70 c03feea0 e559dee8
       c026bafb d680d57c c026beab d680d5a4 00000042 d680d5a4 e559df04 c0220c00
Call Trace:
 [<c026f498>] elevator_exit+0x38/0x44
 [<c0271585>] blk_cleanup_queue+0x75/0x81
 [<c02a6672>] scsi_device_dev_release+0x130/0x197
 [<c026bafb>] device_release+0x21/0x77
 [<c026beab>] device_del+0x81/0xa3
 [<c0220c00>] kobject_cleanup+0x8d/0x8f
 [<c02a7b08>] scsi_remove_single_device+0x6b/0x77
 [<c02a7cc9>] proc_scsi_write+0x1b5/0x292
 [<c015b6a3>] vfs_write+0xaf/0x119
 [<c015b7a9>] sys_write+0x3f/0x5d
 [<c0355b63>] syscall_call+0x7/0xb


Dat zal dan waarschijnlijk aan de een of andere kernelpatch liggen ofzo.
Maar het device verdwijnt dus wel. Het bericht blijft echter op het display van de iPod staan...

Tja