I have not seen this anywhere else so I figured I would document it in the wiki.
The new desktop (version 1.0.5) made a number of changes to the basic Xandros O/S. I am not sure whether the change to 1.0 4 or 1.0.5 did this. I upgraded from whatever was in my initial installation to 1.0.5 and first saw it there.
In the change, ASUS semms to have inserted a new version of usbstorageapplet has the mount permissions hard-coded. IT no longer uses the values from probedevice.
1. Media has new descriptions…
If the system finds USB or SD card devices, it assigns them drive letters (similar to Windows) instead of naming them the usual way. The SSD is not identified with a drive letter (as far as I can tell) but seems to reserve C:
So /media/MMC-SD/partition1 is now /media/D: ←—NOTE the colon following the letter!>
If a device has multiple partitons, each gets its own drive letter. So /media/MMC-SD/partition1 is now D: and /media/MMC-SD/partition2 is now E:
If you plug in a USB or SD device while Xandros is running, each new partition is given drive letters starting where the previous letters stopped. So if you plug in a 3 partition USB drive after Xandros is running with the 2 partition SD card, you get drive letters F:,G: and H: plug in an additional USB stick and it becomes drive letter I: , etc.
If you reboot with all these devices attached, the drive letters CHANGE! The USB ports get the first drive letters BUT not neccessarily in a consistant order. In a sampling of 5 different boots, the left side USB port got the drive letters first 3 different times I booted but a right side USB drive got the initial drive letters the other 2 times. The SD Card always got the last lettters.
After I Got a new USB device (USB hard drive), it mounted after the SD Card on boot…. so it seems to be dependent on the timing of when things get mounted. While a USB stick always mounts before the SD Card, a USB micro HD may mount after the SD Card.
Implication - drive letters may change from boot to boot.
2. Symbolic links based on the old descriptors now fail. New symbolic links may ALSO fail because they reference drive letters (which we have seen can change).
3. Scripts referencing data on USB or SD now fail because of the change to drive letters. BE VERY CAREFUL USING CODE PROVIDED IN THE WIKI. If it refers to partitions of an SD Card or USB drive, it will no longer work as-is. New scripts MAY also fail because drive letters may change. You may have to add code to your scripts to see which drive letter refers to your device (SD Card or USB stick) before referencing data. See a sample below.
4. Windows sharing acts “strangely” inconsistant. Partly it is because the drive letters have changed but also because not all the security models will accept the colon needed to refernce an SD Card or USB Drive. Example using XandrosFileManager (simple mode manager): Try to share a directory on an SDcard in the eeePC with a windows network - Highlight the drive letter, right click and select sharing….Windows Sharing …select share this item and its contents and give it a share name like myshare …click OK and you get an error message (with the title rename) that the name cannot contain \ /:*? and so on…. but the name was myshare so why an error message (big red Circle with an X through it)? …click OK to close error then click OK to close sharing dialog. Another error message…. myshare is already in use. Ignore it. …click OK to close error. Get the same rename error message. Click OK. …click cancel to close sharing dialog. The share is enabled despite the errors.
The share is tied to the drive letter. Even when the drive letter now points to different media, that letter is shown as shared with the original share name. Example: Without any USB sticks, my SD card was drives D: and E:. I shared drive D: as mySDcard. Rebooting after adding a USB stick, makes the first partition on the stick drive D:
XANDROS is oblivious to the fact that the media under the drive letter has changed. Nothing gets reset. I can access from my desktop XP box my share called mySDcard which now points to the USB stick (the new drive D: ) instead of the SD Card.
5. Changes made following the wiki article http://wiki.eeeuser.com/howto:sd_permissions still work because you CAN write to an SD card or USB device as user (the resulting file does shows ROOT as owner). You can also delete files from the card. Some people have posted that they cannot do so and the permissions were lost with the new desktop. I think that the desktop update may have removed the /media mount point. Recreating it should fix that issue. (sudo mkdir /media).
6. Scripts stored on an SD Card or USB drive CAN NOT be made executable. Both using XandrosFileManager in sudo mode or entering sudo chmod a+x D:/LinuxStuff/icon_resizer.sh do not give an error message but also do NOT make the change. You will get no warning or failure messages. If a script was already executable before you updated to the new desktop, it it will lose the x atribute after the update. If you copy an executable script from the SSD to an SD Card or USB device, it loses the execute permission when it is copied.
Implication If you want to store executable scripts on the SDCard or USB device, you will need to create a script (stored on the SSD) that takes the script's name as a variable, copies it temporarily to the SSD, executes it & then deletes it. UPDATE See the bottom of page 1 of http://forum.eeeuser.com/viewtopic.php?pid=292780 scarpia31 says that using vim to edit the usbstorageapplet will allow executables to work on USB and SBCards.
6. Windows sharing FROM an XP using XandrosFileManager is prevented by the change. It seems that the update changed the way XandrosFileManager communicates with a windows share via samba. If you open XandrosFileManager at start up (because you have an SD Card or USB device inserted), and try to access a network share on an XP (and vista?), you are lead to a cycle of requests for (and rejection of) id, password and domain.
It is important to NOT open XandrosFileManager when prompted to at start up. You must select cancel for that instance of the file manager, wait until you are sure the network is fully connected and then open an instance of XandrosFileManager.
Some people have had problems connecting to windows shares under any conditions. If that is the case, you should reset your password by going to the Settings tab and pressing the personalization icon.
You CAN also access the windows share by using XandrosFileManager in sudo mode. This works all the time to both read and write data on the XP share.
If you DO open an instance of the file manager at start up, you cannot access the windows shares until you reboot.
Mounting the windows shares (using the mount command) still works without problems so it seems to be strictly a Xandros FileManager issue.
7. How to add code to create /media/MMC-SD; /media/USB1; and /media/USB2
This script will create symbolic links using the old style names and link them to the appropriate dirve letter. In other words, /media/MMC-SD will be a symbolic link to /media/D: if thats the only device you have inserted on boot.
This script has to run at startup. The old fashioned way of modifying the probedevice.module module no longer works. [I hope someone will figure out how to have it run whenever a new device is inserted or removed.]
NOTE: For USB devices, you want to change USB1 and USB2 to whatever the name of your USB device is (i.e. - “Traveldrive 005B” or “PUD 8M”)
I used http://wiki.eeeuser.com/howto:startupscript?s=startup%20script as the basic plan to follow. I want to thank cjdshaw for providing a script on extending connection time for wireless booting. He pointed the way for me to modify it for this script.
In Easy Mode:
A Open a Terminal (Ctrl-Alt-T). B. If /home/user/.icewm does not exist, create it. (check for it by “ls -a /home/user”; create it with “mkdir /home/user/.icewm) C. In that folder, create a file called startup (“touch startup”). D. Make it executable now, before you forget (“chmod 0755 startup”). E. kwrite /home/usr/.icewm/startup and add the following code:
#!/bin/sh #if by any chance SDCard is not up yet - give it up to 10 second wait sudo rm /media/MMC-SD sudo rm /media/USB1 sudo rm /media/USB2 i=0 while [ $i -lt 10 ]; do if [ -n "`cat /etc/mtab | grep /dev/sdb1`" ]; then echo found SDCARD and DIR="`cat /etc/mtab | grep /dev/sdb1 | cut -c11-19`" echo Directory = $DIR sudo ln -s $DIR /media/MMC-SD break; fi echo Waiting for SDCARD to be up - $i... sleep 1 i=$((i+1)) done if [ $i -eq 10 ]; then echo No SDCARD fi #if by any chance USB1 is not up yet - give it up to 10 second wait i=0 while [ $i -lt 10 ]; do if [ -n "`cat /etc/mtab | grep /dev/sdc1`" ]; then echo found USB1 and DIR="`cat /etc/mtab | grep /dev/sdc1 | cut -c11-19`" echo Directory = $DIR sudo ln -s $DIR /media/USB1 break; fi echo Waiting for USB1 to be up - $i... sleep 1 i=$((i+1)) done if [ $i -eq 10 ]; then echo No USB1 fi #if by any chance USB2 is not up yet - give it up to 10 second wait i=0 while [ $i -lt 10 ]; do if [ -n "`cat /etc/mtab | grep /dev/sdd1`" ]; then echo found USB2 and DIR="`cat /etc/mtab | grep /dev/sdd1 | cut -c11-19`" echo Directory = $DIR sudo ln -s $DIR /media/USB2 break; fi echo Waiting for USB2 to be up - $i... sleep 1 i=$((i+1)) done if [ $i -eq 10 ]; then echo No USB2 fi
and save it
F. sudo cp /usr/bin/startsimple.sh /usr/bin/startsimple.sh.bak G. sudo kwrite /usr/bin/startsimple.sh H. Look for the following line: ”/opt/xandros/bin/AsusLauncher &” I. Insert the following code just above it, then save and reboot.
if [ -x /home/user/.icewm/startup ]; then #we have a start up file to execute /home/user/.icewm/startup & fi