You are not logged in.

#1 2009-04-23 20:35:05

Wilco
Member
Registered: 2008-11-09
Posts: 440

My quest to get a fast and usable Linux system

In my quest to find a decent combination of programs, configuration and usability, here are my preliminary conclusions. I tried to find programs that don't annoy me (popups, slowth, etc.).

- Internet: Firefox, used to be snappy but it's kinda slow these days with sites such as Gmail. Still the best one without a *hitload of dependencies.
- Music: XMMS. Silence is silver, XMMS is gold. Still the fastest player that can use Winamp skins and play all my mp3, flac and wma files.
- Filemanager: Thunar. It does a nice job, although it requires Fam to monitor filechanges. Fam is designed to overcome a problem that is a solution itself when compared to fam (xfe is a good alternative for Thunar and uses polling instead of fam). Still thunar looks nice, supports GTK2 themes and does the job ok.
- Videoplayer: mplayer. Edit /usr/share/applications/mplayer.desktop and replace the two gmplayer occurences with mplayer to get rid of the hideous GUI. For DVDs with menus, stick with xine.
- Messenger. Nobody I know uses AIM or ICQ anymore so I stick with amsn which can block/unblock my MSN contacts (sounds trivial? just try pidgin) and does a good job at one thing only and that is MSN.
- PDF: epfdview, fast and does what it needs to do.
- WM/DE. Icewm. Doesn't really matter though, Xfce seems to have gotten fat lately.
- Background all daemons in /etc/rc.conf except syslog-ng (and hal)
- HAL: Hotplugging a mouse/keyboard, external harddisk and even my card reader work on the fly. Unfortunately that's the only good part about HAL.
- Networking: WICD because I switch from wireless to wired on this netbook. On a fixed line, I install nothing and use the good old ifconfig with a static IP.

Future work:
- Get rid of udev, I'd rather have 200+ static devices in /dev than a daemon and a 5 second extra startup time for something I don't want or need.
- Replace HAL so I can get rid of two more daemons: dbus and HAL. The only reason I have it is because I like the hotplugging part.


Coming from an LFS background I used to run without udev and used custom BSD style init scripts which were just a bit faster. So overcoming udev is the next big thing to do. My goal is to remove all the annoying stuff Linux is plagued with over the years.

Suggestions are welcome!

Offline

#2 2009-04-23 20:57:08

deej
Member
Registered: 2008-02-08
Posts: 395

Re: My quest to get a fast and usable Linux system

Interesting synopsis of the drawbacks of /dev and how udev overcomes them here:

http://www.kernel.org/pub/linux/utils/k … v_vs_devfs

As for Thunar, I believe it can use gamin now, instead of fam.

God luck in your quest smile

Deej

Last edited by deej (2009-04-23 20:57:28)

Offline

#3 2009-04-23 21:27:19

.:B:.
Forum Fellow
Registered: 2006-11-26
Posts: 5,819
Website

Re: My quest to get a fast and usable Linux system

So let me get this straight.

You want to run mknod for every USB stick, SD card, external HD you plug in or connect? Does this mean (never ran without udev or hotplug) that you have to mknod every new device? If so... I don't envy you.

Also: there is a huge contradiction in wanting to monitor file system changes when it comes to the directories you browse, while at the same time you want to get rid of udev (thus implying you'd like to implement a static /dev). I have it just the other way around - udev managing /dev, and fam/gamin are banned from my systems. If I want to see whether something changed in a particular dir through my file browser, I'll press F5, thank you.

It's late here, so maybe I'm not getting it. But your 'plan', frankly, doesn't look sound to me. I only touch mknod with a long stick - I know more or less how it works, but that doesn't mean I'm eager to muck around in the belly of my OS like that. No sir.

As for your choice of apps - Firefox needs maintenance (it saves a lot of stuff in sqlite databases, and they need some cleaning out once in a while). Imho Firefox does not fit into the concept of a lean desktop. It's a tradeoff between comfort (offered by its features and extensions) and speed, but it's a beast. Not a fast runner. There's a lot of alternatives out there - quite some webkit browsers that are a lot lighter to start out with.

Also, considering the drawbacks you see on present-day Linux installations (I am not saying there aren't any!), did you try e.g. some BSDs, to see if they satisfy your taste more?


Got Leenucks? :: Arch: Power in simplicity :: Get Counted! Registered Linux User #392717 :: Blog thingy

Offline

#4 2009-04-24 00:27:43

lilsirecho
Veteran
Registered: 2003-10-24
Posts: 5,000

Re: My quest to get a fast and usable Linux system

Perhaps you would enjoy running your system in ram.

This can be done using Faunos which is archlinux based and performs well from USB flash or CF card with adapter from sata.  The speed up with CF is minimal and doesn't affect performance of the system running in ram.

Downloads can be run in ram and be deleted upon reboot.

The USB flash drive is not active after booting if one installs to ram.

Normal operation is in ram with the system params loaded into tmpfs.

The system has better speed performance than normal archlinux.

Only have to give it a go and decide for yourself.

Good hunting!


Prediction...This year will be a very odd year!
Hard work does not kill people but why risk it: Charlie Mccarthy
A man is not complete until he is married..then..he is finished.
When ALL is lost, what can be found? Even bytes get lonely for a little bit!     X-ray confirms Iam spineless!

Offline

#5 2009-04-24 07:39:20

Wilco
Member
Registered: 2008-11-09
Posts: 440

Re: My quest to get a fast and usable Linux system

B wrote:

So let me get this straight.

You want to run mknod for every USB stick, SD card, external HD you plug in or connect? Does this mean (never ran without udev or hotplug) that you have to mknod every new device? If so... I don't envy you.

No, you can simply create all /dev nodes once and then they are there forever, even after a reboot. There are standardized scripts that handle these tasks so no need to mess around with mknod. I really don't see any point in a dynamic dev versus a static dev.

B wrote:

As for your choice of apps - Firefox needs maintenance (it saves a lot of stuff in sqlite databases, and they need some cleaning out once in a while). Imho Firefox does not fit into the concept of a lean desktop. It's a tradeoff between comfort (offered by its features and extensions) and speed, but it's a beast. Not a fast runner. There's a lot of alternatives out there - quite some webkit browsers that are a lot lighter to start out with.

Yeah, I read the discussion about a browser using the Arch concept and it sounds great!

Offline

#6 2009-04-24 08:10:02

.:B:.
Forum Fellow
Registered: 2006-11-26
Posts: 5,819
Website

Re: My quest to get a fast and usable Linux system

I need to read up on static /dev I guess... But I kinda like Udev <3.


Got Leenucks? :: Arch: Power in simplicity :: Get Counted! Registered Linux User #392717 :: Blog thingy

Offline

#7 2009-04-24 08:25:00

Aprz
Member
From: Newark
Registered: 2008-05-28
Posts: 277

Re: My quest to get a fast and usable Linux system

Yeah, Wilco is right. That's how I always thought static /dev too, which is what I do too. wink

The point of udev is to be dynamic and ease of use. No, I am not saying udev is easy to use, but it's a lot easier to have udev handle your virtual devices/nodes rather than you having to figure out what you need like how to create /dev/input/mouse{0, 1, 2) or /dev/mem or /dev/agpgart. In my opinion, static /dev is worth the once in a life hassle. big_smile

I am not entirely sure of all of udev's features, but I believe another dynamic point they wanted to do with is device naming and numbering which is one of the two reasons why we moved on from devfs I believe (udev is more dynamic and devfs was lacking in maintenance at some point).

One thing I am still trying to figure out (yes, I am still in the middle of the hassle of trying to figure out how to get xterm and other terminal emulators to work, lol, with a static /dev) is how to create the nodes xterm need using mknod. Google is really failing me!

Offline

#8 2009-04-24 08:35:45

Wilco
Member
Registered: 2008-11-09
Posts: 440

Re: My quest to get a fast and usable Linux system

You can read up some makedev scripts to see how it's done. For xterm you most likely need the nodes that are inside /dev/pty (sorry I forgot the name unsure about the pty part).
I always ran MAKEDEV which populated /dev and manually created /dev/input/*

What I like about udev is the possibility to search for a devices' name and let that be the reason for the name it gets. However, creating udev rules is hell.

Offline

#9 2009-04-24 08:48:45

.:B:.
Forum Fellow
Registered: 2006-11-26
Posts: 5,819
Website

Re: My quest to get a fast and usable Linux system

mknod -c 1 3 /dev/bla

You need a major and minor number. That's what I know tongue. But imho, frankly, the time you invest into turning your /dev into a static one and coping with the drawbacks... You might as well keep udev wink.

As for creating udev rules being hell... I don't know where you get that from - it's fairly easy to check the output and put something together (provided it works wink).


Got Leenucks? :: Arch: Power in simplicity :: Get Counted! Registered Linux User #392717 :: Blog thingy

Offline

#10 2009-04-24 13:28:27

Aprz
Member
From: Newark
Registered: 2008-05-28
Posts: 277

Re: My quest to get a fast and usable Linux system

Nah, I finally figured out that it was /dev/ptmx. It was the incorrect major and minor number which I had it set to 165, 0 when it should've been 5, 2. /dev/ptmx is top dog when it comes to xterm and other terminal emulator and it reads and writes to /dev/pts/n where n is the number of terminal emulators opened starting from 0 (literally if you have 3 xterm windows opened, it would be /dev/pts/{0, 1, 2}). I bumped into a very simple problem after that which was my terminal would open, but no shell and it limited the numbers of terminals I oped and threw a fit with "open ttydev: Permission denied" which I lashed out with chmod 666 /dev/tmp and my problems were solved. wink

Yeah, I did read those MAKEDEV scripts, but none of them worked for me. It really turned out that I read a bad one apparently and dide 165, 0 to ptmx when it should've been 5, 2.

Anyhow, it was worth the effort in my opinion. wink Lots and lots of reading though... I really hated Googling for this because 99% of people solution was run MAKEDEV which they didn't show the content to or they said install udev, lol. It made it very difficult to figure this out.

Last edited by Aprz (2009-04-24 13:30:18)

Offline

#11 2009-04-24 13:36:34

Wilco
Member
Registered: 2008-11-09
Posts: 440

Re: My quest to get a fast and usable Linux system

Nice work! Maybe we can add a Wiki entry for an udev-less system?

Offline

#12 2009-04-24 14:16:33

Aprz
Member
From: Newark
Registered: 2008-05-28
Posts: 277

Re: My quest to get a fast and usable Linux system

It's actually simple. wink

At first, I just copied everything from /lib/udev/devices/ into /dev in rc.sysinit and I removed the udevadm daemon, trigger, and settle. I already knew about /dev/sda* because of it being required for that fast-init post for the laptop (not netbook, not using that) where it had you write up your major and minor for each partition, but that was unnecessary knowledge in this case really since I just copied from /lib/udev/devices/. My system was bootable, but X wouldn't start, but it threw a complain about /dev/agpgart first, Googled, found it was 10, 175. Tried X again, it complained about /dev/mem, Googled, it was 1, 1, and X started. My mouse wouldn't start, but I recalled from taking support away from event0 (it's not necessary for your mouse to work, but without it, I recall that I would have to click after X start so I could move my mouse) in the kernel and that it was located in /dev/input/ and also recalled xorg.conf saying /dev/input/mice and Identifier mouse0, Googled... mice is 13 63, mouse0 is 13 32, and you can see this all in your current /dev. By the way, I could Google because I actually know Firefox keyboard shortcut pretty well and use them regularly (ctrl + l for url, ctrl + k for Google, ' to find a link, / to find a text, ctrl + w to close a tab/window, ctrl + t for a new tab, ctrl + n for a new window, and much more). I try to minimize the use of using a mouse. I also use dwm and dmenu so I don't need to click (and pretty much can't click unless I dowload a filemanager, which I haven't and probably will never again..) so alt + p to launch dmenu... alt + shift + enter is to open xterm, but that wasn't working... Lets see... I then Googled forever about xterm and like I said, it was hard to find anything on it. The stuff I did found suggest that it had something to do with /dev/ptm, /dev/ptmx, /dev/pts/, and it slightly suggested it had to do with pairing /dev/ttysn where n is a number with /dev/ptysn, which I played around with many combinaton of those.. turned out that's the deprecated way of doing it (there is s, q, p, and r, it ranges from 0x0 - 0xf in hexadecimal... some simple rules on it). After figuring out that /dev/ptmx is suppose to be 5 2, I got a permission error I already said what it was, solution was simple and obvious, chmod 666 /dev/tty. The only thing I believe I needed was /dev/snd/ for sound (alsa will complain, but I forgot what it was). For sound... I was finally smart enough to just reuse udev again to look at /dev/snd using ls -l to see the major and minor number, repeated this all in /lib/udev/devices/ (it doesn't have to be there... I just did it since all the other guys were there already) (I mean the mice, mouse0, mouse1, event0, event1, and so on... did it all there) and then in my rc.sysinit, it just copies that from the start after /dev, /proc, and /sys are mounted.

Oh, by the way, I have agpgart in /dev instead of /dev/misc like in the normal install. the one in /dev was a link to /dev/misc, but as you boot, rc.sysint will try to create /dev/misc and complain it already exist along with trying to create rtc0 and rtc. I'd just recommend moving agpgart to /dev and not mkdir /dev/misc (let the init do that along with mknod rtc).

So for anyone who wants to do this, I recommend they read what I just said ^^ and also just imitate was is already in /dev as you use udev so that when you take away udev, it will still have support for everything. In my case, it was ~2s speedup in boot. wink

Am I an expert at this? No.. I probably have some huge new security vulnerabilities or something. XD

Last edited by Aprz (2009-04-24 14:24:17)

Offline

#13 2009-04-24 15:17:45

mike_93
Member
Registered: 2009-01-31
Posts: 60

Re: My quest to get a fast and usable Linux system

Aprz wrote:

It's actually simple. wink

At first, I just copied everything from /lib/udev/devices/ into /dev in rc.sysinit and I removed the udevadm daemon, trigger, and settle. I already knew about /dev/sda* because of it being required for that fast-init post for the laptop (not netbook, not using that) where it had you write up your major and minor for each partition, but that was unnecessary knowledge in this case really since I just copied from /lib/udev/devices/. My system was bootable, but X wouldn't start, but it threw a complain about /dev/agpgart first, Googled, found it was 10, 175. Tried X again, it complained about /dev/mem, Googled, it was 1, 1, and X started. My mouse wouldn't start, but I recalled from taking support away from event0 (it's not necessary for your mouse to work, but without it, I recall that I would have to click after X start so I could move my mouse) in the kernel and that it was located in /dev/input/ and also recalled xorg.conf saying /dev/input/mice and Identifier mouse0, Googled... mice is 13 63, mouse0 is 13 32, and you can see this all in your current /dev. By the way, I could Google because I actually know Firefox keyboard shortcut pretty well and use them regularly (ctrl + l for url, ctrl + k for Google, ' to find a link, / to find a text, ctrl + w to close a tab/window, ctrl + t for a new tab, ctrl + n for a new window, and much more). I try to minimize the use of using a mouse. I also use dwm and dmenu so I don't need to click (and pretty much can't click unless I dowload a filemanager, which I haven't and probably will never again..) so alt + p to launch dmenu... alt + shift + enter is to open xterm, but that wasn't working... Lets see... I then Googled forever about xterm and like I said, it was hard to find anything on it. The stuff I did found suggest that it had something to do with /dev/ptm, /dev/ptmx, /dev/pts/, and it slightly suggested it had to do with pairing /dev/ttysn where n is a number with /dev/ptysn, which I played around with many combinaton of those.. turned out that's the deprecated way of doing it (there is s, q, p, and r, it ranges from 0x0 - 0xf in hexadecimal... some simple rules on it). After figuring out that /dev/ptmx is suppose to be 5 2, I got a permission error I already said what it was, solution was simple and obvious, chmod 666 /dev/tty. The only thing I believe I needed was /dev/snd/ for sound (alsa will complain, but I forgot what it was). For sound... I was finally smart enough to just reuse udev again to look at /dev/snd using ls -l to see the major and minor number, repeated this all in /lib/udev/devices/ (it doesn't have to be there... I just did it since all the other guys were there already) (I mean the mice, mouse0, mouse1, event0, event1, and so on... did it all there) and then in my rc.sysinit, it just copies that from the start after /dev, /proc, and /sys are mounted.

Oh, by the way, I have agpgart in /dev instead of /dev/misc like in the normal install. the one in /dev was a link to /dev/misc, but as you boot, rc.sysint will try to create /dev/misc and complain it already exist along with trying to create rtc0 and rtc. I'd just recommend moving agpgart to /dev and not mkdir /dev/misc (let the init do that along with mknod rtc).

So for anyone who wants to do this, I recommend they read what I just said ^^ and also just imitate was is already in /dev as you use udev so that when you take away udev, it will still have support for everything. In my case, it was ~2s speedup in boot. wink

Am I an expert at this? No.. I probably have some huge new security vulnerabilities or something. XD

Simple? I think that that's the longest paragraph I've ever read. tongue


Double booting Arch Linux and Linux Mint
Reader of XKCD

Offline

#14 2009-04-24 15:58:24

Aprz
Member
From: Newark
Registered: 2008-05-28
Posts: 277

Re: My quest to get a fast and usable Linux system

Well, it was more of a story than a howto which is why it is so long. wink

Last edited by Aprz (2009-04-27 15:45:32)

Offline

#15 2009-04-27 15:46:00

Aprz
Member
From: Newark
Registered: 2008-05-28
Posts: 277

Re: My quest to get a fast and usable Linux system

Free bump and for the record (to save some of you time, hassle, and trouble):

/bin/mknod /dev/agpgart c 10 175
/bin/mknod /dev/mem c 1 1
/bin/mknod /dev/ptmx c 5 2
/bin/mknod /dev/input/mice c 13 65
/bin/mknod /dev/input/mouse0 c 13 32
/bin/mknod /dev/input/event0 c 13 64

The rest,like sound, may vary (I am not sure if this would actually be used... I am using an HDA Intel Conexant ID 5045 with just general features.

/bin/mknod /dev/snd/controlCO c 116 0
/bin/mknod /dev/snd/pcmC0D0c c 116 24
/bin/mknod /dev/snd/pcmC0D0p c 116 16
/bin/mknod /dev/snd/seq c 116 1
/bin/mknod /dev/snd/ctimer c 116 33

You'll also need to chmod 777 /dev/{tty,ptmx} I think were the two.

I played with this stuff and Googled for hours before even thinking of copying what udev did to become persistent data. Well, not really copying. If you try to copy, it won't do it. You'll need to move it, mv. Funny cause the initscripts actually copy it from the start.

Error you'll notice if you did something wrong:
If you need to click to move your mouse after X starts, it means you don't have /dev/event0.
If xterm or other terminal emulators do not popup, ptmx doesn't exist or isn't the correct permission. You'll get an error on not enough ptys.
If xterm or other terminal emulators open, but your shell doesn't start, you need to chmod tty. You'll get an error on opentty I believe.
If you can't use alsamixer on your normal user, chmod 777 /dev/snd/*. I forget the error.
If X doesn't start and it throws a complaint about /dev/agpgart... /dev/agpgart doesn't exist.
If X doesn't start and it throws a complain about /dev/mem... /dev/mem doesn't exist.

Those are things I ran into to trouble with, haha!

Like I said, a lot of the device nodes you need will also already exist in /lib/udev/devices/. I'd recommend just do what I did above ^^ there instead of in /dev/, comment out udevadm/udev daeom,trigger, and settle in /etc/rc.sysinit, there should be a line that already copies the contents of /lib/udev/devices/ right before the lines you comment out.

What I am curious on and too lazy to do is whether creating these as you boot or copying it is faster? I haven't tried out, I doubt it would make any significant changes. I just have mine copied, hehe.

Again, doing ls -l as you use udev too will help you collect the major and minor numbers you need. I didn't think of this. Not as much fun anyhow. XD

Last edited by Aprz (2009-04-28 07:32:08)

Offline

#16 2009-05-01 12:03:29

app4des
Member
Registered: 2009-02-18
Posts: 39

Re: My quest to get a fast and usable Linux system

If you use MSN only, I would suggest "emesene", amsn is very ugly looking and slow imo.

Offline

#17 2009-05-01 13:30:03

Wilco
Member
Registered: 2008-11-09
Posts: 440

Re: My quest to get a fast and usable Linux system

Thanks, I will try emesene, although my experience wasn't good with it in the past. Maybe it has improved.

Offline

#18 2009-05-01 13:39:04

Aprz
Member
From: Newark
Registered: 2008-05-28
Posts: 277

Re: My quest to get a fast and usable Linux system

Gotten rid of udev yet? I wrote a little nice mini guide in here. \o/

Offline

#19 2009-05-01 14:12:25

R00KIE
Forum Fellow
From: Between a computer and a chair
Registered: 2008-09-14
Posts: 4,734

Re: My quest to get a fast and usable Linux system

app4des wrote:

If you use MSN only, I would suggest "emesene", amsn is very ugly looking and slow imo.

Well yes, but I can make voice clips, audio and audio+video calls work with amsn (with some effort I admit).
If you want an msn client it's because (most) contacts use live messenger so you want to be able to call them, see them and let them see you if you want to.
Not many linux msn clients allow you to do that, as far as I know only one client allows all that, amsn. I might be wrong though. Also some clients don't allow peer to peer file transfers so it's terribly slow to send anything.


R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

Board footer

Powered by FluxBB