Lubuntu 11.04 - floppy drev virker ikke

Dette forum bruges på EGET ANSVAR til at lege med scripts og andre ting med risiko for at beskadige sit eget og andres systemer.
Insomniacno1
Indlæg: 21
Tilmeldt: 21. sep 2008, 12:43
IRC nickname: Insomniacno1
Geografisk sted: Søllested, Lolland

Lubuntu 11.04 - floppy drev virker ikke

Indlæg af Insomniacno1 »

Grundet en bug i kernen, virker floppy drev ikke på Lubuntu 11.04 og nedefter ifølge denne bug repport:

https://bugs.launchpad.net/ubuntu/lucid/+source/udisks/+bug/441835?comments=all

Nu vil jeg gerne høre om der er en løsning?

Jeg er ikke meget for at skulle nedgradere eller inst. en patch som måske/måske ikke virker.


Håber der er en "tekniker" der læser dette:)

Mvh

Jan
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af AJenbo »

Floppy disketter degradering med tid, er skrøbelige og langsomme så jeg vil råde dig til at flytte din data til en usb stick.

Du kan prøve følende kommandoer, det har virket for andre med 11.04.
Indsæt en diskette og køre kommandoen:

Kode: Vælg alt

sudo udisks --mount /dev/fd0


Når du er færdig med at kopiere filerne fra disketten køre du denne kommando inden du fjerner disketten:

Kode: Vælg alt

sudo udisks --unmount /dev/fd0
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af lath »

Insomniacno1 skrev:Grundet en bug i kernen, virker floppy drev ikke på Lubuntu 11.04 og nedefter ifølge denne bug repport:

https://bugs.launchpad.net/ubuntu/lucid/+source/udisks/+bug/441835?comments=all

Nu vil jeg gerne høre om der er en løsning?

Jeg er ikke meget for at skulle nedgradere eller inst. en patch som måske/måske ikke virker.


Håber der er en "tekniker" der læser dette:)

Mvh

Jan


Efter hvad jeg kunne se i den sidste post (#326), så er det sådan at Canonical patcher (ændrer) udisks på en fejlagtig måde.
Det er i alt fald det upstream (udisks udviklerne) oplyser i post #326 på den launchpad fejlmeddelelse.

Det har uheldigvis den betydning at det går hen og bliver meget langhåret/avanceret for almindelige brugere at bruge et floppy drev.
For man skal:
  1. Oprette en device fil i /dev med den rigtige major number (=2=den der svarer til floppy drev. Brug mknod kommandoen, som root)
  2. Indlæs device floppy device driveren med modprobe (også om bruger root)
  3. Opret en tom mappe f.eks. floppy i /media mappen (som user root)
  4. Så monteres filsystemet med mount/pmount: man skal angive devicefilen man oprettede først, filsytemet er read og write (-w),hvilken mappe den skal mountes på (/media/floppy), og angive hvilket filsystem der er på floppydrev (enten dos, eller vfat - det angives med -t dos eller -t vfat) Dette skal igen gøres som superbrugeren root.
  5. Så kan man læse og skrive filer med filhåndtering ved at starte denne kommando, som superbrugeren root:

    Kode: Vælg alt

    sudo nautilus /media/floppy

    Bemærk: er der et eller andet der mislykkedes, nytter det ikke noget at fortsætte med de efterfølgende kommandoer.
  6. Når man er færdig synkroniserer man først floppy drev, og harddiske:

    Kode: Vælg alt

    sync;sync
  7. Hvorefter man unmounter drevet:

    Kode: Vælg alt

    sudo umount /media/floppy
Dette er faktisk meget avanceret for den almindelige Linux bruger: Punkt 1 i særdeleshed er faktisk noget man kun ved, hvis man har lavet en Linux device driver, der får kernen til at styre noget hardware, man selv har lavet - og dem har jeg lavet 2 af.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
Insomniacno1
Indlæg: 21
Tilmeldt: 21. sep 2008, 12:43
IRC nickname: Insomniacno1
Geografisk sted: Søllested, Lolland

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af Insomniacno1 »

Ok, det bliver langhåret:) Men, nu har jeg i 2 dage forsøgt at lave en genvej til skrivebordet sådan at man kan starte det derfra. Dog er det endnu ikke lykkedes for mig.

Det der lykkedes var at lave en floppy.sh som kunne køres fra terminal, og der virkede det(lige nu vil den ikke, efter opdateringer igår). Forsøger jeg køre den fra en mappe eller skrivebord bliver jeg bedt om koden for root og så sker der ikke mere.

koden ser sådan her ud:

sudo mount -t vfat /dev/fd0u1440 /media/floppy0 -o iocharset=utf8

og er gemt i floppy.sh

det jeg gerne vil have er en ekseverbar fil som kan køres fra skrivebord, og som selv sætter koden til root.


fstab har denne linie:

/dev/fd0 /media/floppy0 auto rw,noauto,user,exec,utf8 0 0


Er der en af jer der kan løse det for mig?

Mvh

Jan
Ps. det er Lubuntu(LXDE), så hvis koden skal ændres må I meget gerne gøre det:)
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af AJenbo »

Det er nok ikke så smart at have den i fstab ved mindre der ALTID sider en diskette i maskinen, og selv da vil jeg fra råde det.

/dev/fd0u1440

er det dit floppy drev eller er dit floppy drev /dev/fd0 ?
Er det forbundet via USB eller internt kabel?

Sørg for at mappen /media/floppy0 IKKE eksistere, genstart computeren og prøv det første forslag jeg kom med (ret /dev/fd0 hvis dit drev er /dev/fd0u1440).

Hvordan virker det?
Insomniacno1
Indlæg: 21
Tilmeldt: 21. sep 2008, 12:43
IRC nickname: Insomniacno1
Geografisk sted: Søllested, Lolland

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af Insomniacno1 »

AJenbo skrev:Floppy disketter degradering med tid, er skrøbelige og langsomme så jeg vil råde dig til at flytte din data til en usb stick.

Du kan prøve følende kommandoer, det har virket for andre med 11.04.
Indsæt en diskette og køre kommandoen:

Kode: Vælg alt

sudo udisks --mount /dev/fd0


Når du er færdig med at kopiere filerne fra disketten køre du denne kommando inden du fjerner disketten:

Kode: Vælg alt

sudo udisks --unmount /dev/fd0



Hejsa, jeg har nu 2 filer med ovenstående indsat: mfloppy.sh som monterer floppy drevet og ufloppy.sh som afmonterer det. Men jeg skal køre dem fra terminal med:

sudo sh mfloppy.sh

før de vil køre. Men det virker:)

Hvordan får jeg dem gjort til ekseverbare fra skrivebordet og sådan at der ikke skal tastes nogen kode?

Mvh

Jan
Ps. Det er internt floppy drev, i en pc.

fstab ser sådan ud

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID=271f1dcd-9a6b-42ec-857d-753e793f19b5 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=19e1e484-f9d2-4345-9b40-911e0a0d1cfe none swap sw 0 0

/dev/fd0 /media/floppy0 auto rw,noauto,user,exec,utf8 0 0
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af AJenbo »

fstab forsøger at montere drevet når du starter computeren.

Jeg tror ikke lige det kan lade sig gøre at montere det uden adgangskode med den fejl der er i 11.04. Det er forhåbentlig ikke meget du bruger disketter til?

For at kunne køre en script fil ved at dobbelt klikke bør du sørge for følgende:
Højer klik på filen, tryk op egenskaber og sæt filen til at måtte køre som et program under rettigheder.
Hav fil endelsen til at være .sh
Føste linje i filen bør være:

Kode: Vælg alt

#! /bin/sh
Insomniacno1
Indlæg: 21
Tilmeldt: 21. sep 2008, 12:43
IRC nickname: Insomniacno1
Geografisk sted: Søllested, Lolland

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af Insomniacno1 »

Tusinde tak:)

Det virker fint nu, men er der en måde sådan at jeg ikke selv skal vælge "Kør i terminal"?

mvh

Jan
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af AJenbo »

Midt bedste forslag er at du udgår at bruge disketter så vidt muligt, hvad bruger du dem i øvrigt til? Produktionen af dem er jo også stoppet.
Insomniacno1
Indlæg: 21
Tilmeldt: 21. sep 2008, 12:43
IRC nickname: Insomniacno1
Geografisk sted: Søllested, Lolland

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af Insomniacno1 »

Hejsa, det er ganske simpelt:) Denne pc skal bruges til CAD og CNC styring:) Det er sat op nu, lige med undtagelse af EMC2 som jeg har lidt problemer med at installere - men det finder jeg vel ud af:)

Der er nogle CNC maskiner der ikke tager CD/DVD men kun disketter, derfor drevet:)

Mvh

Jan
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af lath »

Interessant det med styring af maskiner: Jeg er IT diplomingeniør i indlejrede systemer (embedded systems).

Insomniacno1 skrev:
AJenbo skrev:Floppy disketter degradering med tid, er skrøbelige og langsomme så jeg vil råde dig til at flytte din data til en usb stick.

Du kan prøve følende kommandoer, det har virket for andre med 11.04.
Indsæt en diskette og køre kommandoen:

Kode: Vælg alt

sudo udisks --mount /dev/fd0


Når du er færdig med at kopiere filerne fra disketten køre du denne kommando inden du fjerner disketten:

Kode: Vælg alt

sudo udisks --unmount /dev/fd0



Hejsa, jeg har nu 2 filer med ovenstående indsat: mfloppy.sh som monterer floppy drevet og ufloppy.sh som afmonterer det. Men jeg skal køre dem fra terminal med:

sudo sh mfloppy.sh

før de vil køre. Men det virker:)

Hvordan får jeg dem gjort til ekseverbare fra skrivebordet og sådan at der ikke skal tastes nogen kode?


Ajenbo skrev:Jeg tror ikke lige det kan lade sig gøre at montere det uden adgangskode med den fejl der er i 11.04.


AJenbo har ret - det kan man ikke - men ikke af den årsag.

Faciliteten du efterspørger, hedder set uid root, men kernen ignorer setuid root informationen for en kørbar fil, hvis den kørbare fil er et script af den åbenlyse årsag af at det åbner for et gigantisk sikkerhedshul.:
Du kan se hvordan setuid se ud for su, og sudo, som netop behøver at være setuid root for at kunne skifte bruger til root:

Kode: Vælg alt

ls -l /usr/bin/su*

bemærk s-et ved bruger execute bitten, og at bruger er root, hvilket betyder at progammet er der kaldes setuid root.

Det er dårlig stil at bruge setuid root, men vil alligevel hjælpe dig med at lave et Linux program i C der kan det. (Du skal bare love mig at sørge for at scriptet, såvel som programmet her kun kan skrives til af root (superbrugeren, og ingen andre, ellers laver du et meget stort sikkerhedshul).

Programmet der kan starte setuid root, ser således ud (C kode):

Kode: Vælg alt

#include <unistd.h>
main()
{
    char *sti_til_program_med_filnavn = "";
    char *args[] = {sti_til_program_med_filnavn, (char *) 0 };
    execv(sti_til_program_med_filnavn, args);
}

Filen gemmes i en tekst fil der hedder mount_floppy.c

I linien med
char *sti_til_program_med_filnavn = "";

indsætter du imellem de 2 "-tegn den absolutte sti til programmet - ikke noget med nogen ekstra mellemrumstegn.
i dit tilfælde bliver linien til:

Kode: Vælg alt

char *sti_til_program_med_filnavn = "/usr/local/bin/mfloppy.sh";

... hvis du gemmer mfloppy.sh i /usr/local/bin.

Først flytter vi lige mfloppy.sh til /usr/local/bin hvor vores program forventer at scriptet er. Placer dig i mappen hvor fil er og kør:

Kode: Vælg alt

sudo mv mfloppy.sh /usr/local/bin/mfloppy.sh

Vi forbereder lige scriptet til kørsel med setuid root programmet vi har færdig lige om lidt:

Kode: Vælg alt

sudo chown root /usr/local/bin/mfloppy.sh; 
sudo chgrp root /usr/local/bin/mfloppy.sh;
sudo chmod 0701 /usr/local/bin/mfloppy.sh


Så skal den oversættes til maskinkode, og det gøres med en C compiler, vi bruger GCC (der skal installeres nogle pakker, kig nederst i indlægget her):
Du skal åbne terminalen og placere dig i samme mappe som hvor mount_floppy.c er og så køre:

Kode: Vælg alt

gcc -o mount_floppy mount_floppy.c

Hvis den ikke skriver noget, gik det godt :) , og du har nu et program der hedder floppy_mount. Kommandoen:

Kode: Vælg alt

ls -l mount_floppy*

bør vise mount_floppy og mount_floppy.c.

Nu er det bare sådan at programmet (mount_floppy) er ikke det rigtige sted og det er ikke ejet af root og ikke set uid, så det skal vi rette op på:
Kopier filen til /usr/local/bin med:

Kode: Vælg alt

sudo cp mount_floppy /usr/local/bin/mount_floppy

Så skifter filen lige ejer og gruppe, vi ordner rettigheder og sætter den set uid root med:

Kode: Vælg alt

sudo chown root /usr/local/bin/mount_floppy; 
sudo chgrp root /usr/local/bin/mount_floppy;
sudo chmod 0755 /usr/local/bin/mount_floppy;
sudo chmod u+s /usr/local/bin/mount_floppy


Nu er den klar :)
Nu kan du bare køre:

Kode: Vælg alt

mount_floppy
(uden at der spørges om kodeord til systemadministration)
Bemærk:
Dette virker ikke, hvis forrige kommando ikke lykkedes = den må ikke skrive nogen fejl, skriver den ingenting skal du regne med at det er lykkedes, du kan kontrollere det med:

Kode: Vælg alt

ls -l /usr/local/bin/floppy_mount

Hvor den skal vise at bruger og gruppe for filen er root og rettigheder bør se således ud:
-rwsr-xr-x 1 root root 7099 2011-07-21 15:13 /usr/local/bin/mount_floppy
hvor terminalen dog skriver den røde tekst, som hvid tekst på rød baggrund.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af lath »

Pakker du skal installere til at kunne oversætte (compilere) programmet med gcc:

build-essentials, linux-libc-dev

Med terminalen installeres de med:

Kode: Vælg alt

sudo apt-get install linux-libc-dev build-essentials


De skulle være det hele, får du en fejl fra gcc, eller når den skal køres, mangler du noget

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af AJenbo »

lath skrev:
Ajenbo skrev:Jeg tror ikke lige det kan lade sig gøre at montere det uden adgangskode med den fejl der er i 11.04.


AJenbo har ret - det kan man ikke - men ikke af den årsag.

Det var nu også ment på den måde du beskriver det, min skulle forestås som at hvis fejlen ikke havet været der var det ikke nødvendigt at køre kommandoen.
Insomniacno1
Indlæg: 21
Tilmeldt: 21. sep 2008, 12:43
IRC nickname: Insomniacno1
Geografisk sted: Søllested, Lolland

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af Insomniacno1 »

lath skrev:Pakker du skal installere til at kunne oversætte (compilere) programmet med gcc:

build-essentials, linux-libc-dev

Med terminalen installeres de med:

Kode: Vælg alt

sudo apt-get install linux-libc-dev build-essentials


De skulle være det hele, får du en fejl fra gcc, eller når den skal køres, mangler du noget

/Lars


Hej Lars jeg får en fejl:

marek@marek-VT82C694X:~$ sudo apt-get install linux-libc-dev build-essentials
Indlæser pakkelisterne... Færdig
Opbygger afhængighedstræ
Læser tilstandsoplysninger... Færdig
E: Kunne ikke lokalisere pakken build-essentials
marek@marek-VT82C694X:~$

mvh

Jan
I må undskylde der går lidt tid mellem svar, men jeg har 3 computere igang og så er det mig der laver mad her i huset:) Vi har lige spist ribbensteg:)
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Lubuntu 11.04 - floppy drev virker ikke

Indlæg af lath »

åh åh
et s for meget:

Kode: Vælg alt

sudo apt-get install linux-libc-dev build-essential

skulle virke, du skal måske også tilføje flere pakkearkiver:
den starter du således:

Kode: Vælg alt

sudo /usr/bin/software-properties-gtk

fra en terminal, luk ikke terminalen før programmet er lukket

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags