0

Disclaimer: I am no Linux guru. I would describe my competency in linux as "passing" at best, meaning I'm comfortable using the command line, but still rely very heavily on the man pages/forums to get anything beyond the basics done.

We have a product that runs on Ubuntu desktop, and for no compelling reason other than consistency the "official" supported version is 10.04.

Now, one thing we have to deal with is interfacing with tons of crazy external devices over serial/usb/RS422/ethernet/802.11/etc. Ubuntu is sort of a nice choice because of the ease of setup for customers and the pretty decent driver support available that means most devices "just work". Among these devices is a USB to serial converter with an FTDI chip, using linux FTDI drivers.

Recently we had a customer running our software in a headless setup on Ubuntu 10.04 using the USB to serial converters. Everything was working great for many days prior to this, though it was a relatively new install not connected to the internet. After one unlucky power cycle on the system (no nice shutdown) the usual FTDI drivers were replaced by "uhci_hcd" drivers.

Through forum surfing and trial and error, we discovered that uninstalling the "britty" package and using modprobe to (re?)load the ftdi_sio and usb_storage modules, everything worked great again.

So there are really two questions here:

1) What in the world coud cause something like that to happen?

And 2) What resources/books/forums can anyone point me to for researching more about configuring a linux (prefereably ubuntu 10.04...? :) ) system that will withstand random power cycling without corrupting configuration files, or whatever happened? This is pretty much a case of needing to know what I don't know, and some good sources to look at to gain that knowledge.

JMW
  • 1
  • Question about your first question :) Had you updated your Ubuntu before this reboot? Sometimes Ubuntu updates can cause all kind of fancy side-effects, even though most of the time they work perfectly. – Janne Pikkarainen Jul 21 '11 at 08:24

1 Answers1

0

This particular failure (loading of unwanted module) could be prevented by blacklisting it in modprobe.conf (man modprobe.conf).

1) Installation of britty package? It's a difficult question for one who didn't experience similar problem. There are 2 possible scenarios: a) You have a race condition in the order of modules loading and you were lucky so far. b) Somebody changed something in-between reboots. Without tripwire or similar tool that watches (important) file changes it's difficult to impossible to tell what was changed and by whom. I'd bet on scenario b). From my experience Linux is a nice repeatable system. It either works every time or it doesn't work every time, until you fix it.

2) I like Red Hat manuals. Go to http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/index.html and read to your heart's content. There will be differences between RHEL and Ubuntu, but it's a good starting point (disclaimer: I use RHEL a lot. I don't use Ubuntu). http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/4/html/Introduction_To_System_Administration/index.html could be a nice read.

Unclean shutdown does not guarantee any sensible state of data on the filesystem. I'd recommend an UPS to protect the server.

Paweł Brodacki
  • 6,511
  • 20
  • 23
  • Google up `data=journal` – poige Jul 21 '11 at 16:12
  • @poige I can recommend to you http://patchwork.ozlabs.org/patch/102201/ (later reworded) and http://lists.debian.org/debian-kernel/2011/06/msg00746.html (a whole thread is a very good read). data=journal may not guarantee what you might expect. If file system developers do not recommend data=journal I won't either. – Paweł Brodacki Jul 26 '11 at 08:08
  • «what you might expect» how do you what do I expect? :-) Also, ext4 is not mature at all, so I don't consider its data=journal either. – poige Jul 26 '11 at 10:30
  • @poige My guess: you expect atomicity of writes from data=ordered. :) Out of idle curiosity: which file system(s) do you consider mature enough? – Paweł Brodacki Jul 26 '11 at 10:45
  • Mature: Reiser3, EXT2/3, JFS and XFS (the most fragile out of above mentioned though). – poige Jul 26 '11 at 11:11