2.0.38 /usr/src/linus/fs/ufs/ufs_super.c
October 25, 2008 Leave a comment
Linux has definitely lost its cool.
printk(“ufs_read_super: fucking Sun blows men”);
Updates every other Friday… usually
October 25, 2008 Leave a comment
Linux has definitely lost its cool.
printk(“ufs_read_super: fucking Sun blows men”);
July 7, 2008 Leave a comment
ISUbuntu is a live Ubuntu CD that’s nearly identical to Ubuntu. The differences are miniscule, but important for our livecd environment. [Update from the future (2012): I've taken the image down since it's large, but left the page up in case anyone wants to follow]
The usplash has an ISU logo
Firefox is automatically started.
Flash is installed
The Desktop has an added Firefox logo and evolution is taken off. Also, lots of programs like bitorrent, etc are gone. Oh, and there is no installer.
Bugs/ todo:
firefox seems to work for our kiosk screen’s resolution, but may not startup *nicely* at first in others. I may fix this if there is any interest.
I don’t like how on the first screen there is an install option, but whatever. Maybe I’ll take it off if/when I remaster the image.
Fix the very first image- it’s kinda yellow due to the pallet from the previous image.
This is my process getting a livecd for ISU.
To modify, you should be able to copy the livecd above and make small changes (like the homepage) and follow the applicable steps in the process below. I highly recommend using a VM for testing such as Virtualbox. Also, you may only want to do a couple things at a time and test (that’s what I did) to avoid compounding errors.
create a usplash image. To do this the easy way I just did the following
$ apt-get source xubuntu-artwork-usplash
$ cd xubuntu-artwork-usplash
$ mv /path/to/yourfiles.png ./xubuntu.png
$ make
remember this file. we will use it later.
prepare the directories for the live cd
$ mkdir -p ./isonew ./isonew/squashfs ./isonew/cd ./isonew/cd
$ mount -o loop ./ubuntu-8.06.iso ./isomount
$ rsync –exclude=/casper/filesystem.squashfs -a ./isomount/ ./isonew/cd
$ modprobe squashfs
$ mount -t squashfs -o loop ./isomount/casper/filesystem.squashfs ./isonew/squashfs/
$ rsync -a ./isonew/squashfs/ ./isonew/custom
$ cp /etc/apt/sources.list ./isonew/custom/etc/
copy the new usplash to overwrite the other one
$ cp ../usplash-theme-xubuntu.so ./isonew/custom/
$ chroot ./isonew/custom/usr/lib/usplash/usplash-theme-ubuntu.so
$ export PS1=”(live) $PS1″
customize
$ apt-get update
$ apt-get dist-upgrade
be sure to remove ubiquity, the installer
$ apt-get remove –purge ubiquity
sort packages by size to help determine the ones to remove
$ dpkg-query –show –showformat=’${Package;-50}t${Installed-Size}n’ | sort -k 2 -n
$ apt-get remove –purge gimp ekiga evolution openoffice-draw
be sure to remove the old kernel if you upgraded – they are huge! There may be more here
$ apt-get remove –purge linux-image-2.6.24-16-generic linux-headers-2.6.24-16-generic
install the flash plugin – note it’s not in default repositories
$apt-get install flashplugin-nonfree
start firefox at boot
modify the default.session file
$ vim /usr/share/gnome/default.session
4,RestartCommand=firefox –sm-client-id default4
$ cat /usr/share/gnome/default.session
[Default]
num_clients=5
0,id=default0
0,Priority=10
0,RestartCommand=gnome-wm –sm-client-id default0
1,id=default1
1,Priority=40
1,RestartCommand=gnome-panel –sm-client-id default1
2,id=default2
2,Priority=40
2,RestartCommand=nautilus –no-default-window –sm-client-id default2
3,id=default3
3,Priority=60
3,RestartCommand=gnome-cups-icon –sm-client-id default3
4,id=default4
4,Priority=80
modify firefox’s homepage to point to our main server. note that the theme needs to be modified too
$ rm /usr/bin/firefox
$ vim /usr/bin/firefox
$ cat /usr/bin/firefox
#!/bin/sh
/usr/bin/firefox-3.0 http://engr.isu.edu/cs
todo: add the user.js file to set their homepage
modify /etc/skel to include firefox
$ mkdir /etc/skel/Desktop
$ vim /etc/skel/Desktop/firefox.desktop
$ cat /etc/skel/Desktop/firefox.desktop
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Firefox Web Browser
Name[ca]=Navegador web Firefox
Name[cs]=Firefox Webový prohlížeÄ
Name[es]=Navegador web Firefox
Name[fa]=مرورگر اینترنتی Firefox
Name[fi]=Firefox-selain
Name[fr]=Navigateur Web Firefox
Name[hu]=Firefox webböngészÅ‘
Name[it]=Firefox Browser Web
Name[ja]=Firefox ウェブ・ブラウザ
Name[ko]=Firefox 웹 브ë¼ìš°ì €
Name[nb]=Firefox Nettleser
Name[nl]=Firefox webbrowser
Name[nn]=Firefox Nettlesar
Name[no]=Firefox Nettleser
Name[pl]=PrzeglÄ…darka WWW Firefox
Name[pt]=Firefox Navegador Web
Name[pt_BR]=Navegador Web Firefox
Name[sk]=Internetový prehliadaÄ Firefox
Name[sv]=Webbläsaren Firefox
Comment=Browse the World Wide Web
Comment[ca]=Navegueu per el web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[de]=Im Internet surfen
Comment[es]=Navegue por la web
Comment[fa]=ØµÙØØ§Øª شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin WWW-sivuja
Comment[fr]=Navigue sur Internet
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=ウェブを閲覧ã—ã¾ã™
Comment[ko]=ì›¹ì„ ëŒì•„ 다닙니다
Comment[nb]=Surf på nettet
Comment[nl]=Verken het internet
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pl]=PrzeglÄ…danie stron WWW
Comment[pt]=Navegue na Internet
Comment[pt_BR]=Navegue na Internet
Comment[sk]=Prehliadanie internetu
Comment[sv]=Surfa på webben
GenericName=Web Browser
GenericName[ca]=Navegador web
GenericName[cs]=Webový prohlížeÄ
GenericName[es]=Navegador web
GenericName[fa]=مرورگر اینترنتی
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[hu]=WebböngészÅ‘
GenericName[it]=Browser Web
GenericName[ja]=ウェブ・ブラウザ
GenericName[ko]=웹 브ë¼ìš°ì €
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[no]=Nettleser
GenericName[pl]=PrzeglÄ…darka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[sk]=Internetový prehliadaÄ
GenericName[sv]=Webbläsare
Exec=firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox-3.0
Categories=GTK;Network;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Firefox
Name[en_US]=Firefox Web Browser
Comment[en_US]=Browse the World Wide Web
Icon[en_US]=firefox-3.0
GenericName[en_US]=Web Browser
updating the initramfs is important, since we changed the kernel and usplash
$ update-initramfs -u
$ apt-get clean
$ rm -rf /tmp/*
$ rm /root/bash_history
$ exit
out of the chrooted environment now
I had to copy gconf from a working formation so the panels would be correct. It’s too complex for me, though I did try to edit /etc/gconf/schemas/panel-default-setup.entries – but didn’t seem to have any effect.
$ cp -a /home/defaultgooduser/.gconf ./isonew/custom/etc/skel
copy the new initramfs to the appropriate place this is very important
$ cp ./isonew/custom/boot/initrd.img-2.6.24-19-generic ./isonew/cd/casper/initrd.gz
$ cp ./isonew/custom/boot/vmlinuz-2.6.24-19-generic ./isonew/cd/casper/vmlinuz
prepare and make the image
$ chroot ./isonew/custom/ dpkg-query -W –showformat=’${Package} ${Version}n’ > ./isonew/cd/casper/filesystem.manifest
$ cp ./isonew/cd/casper/filesystem.manifest ./isonew/cd/casper/filesystem.manifest-desktop
$ mksquashfs ./isonew/custom ./isonew/cd/casper/filesystem.squashfs
$ rm ./isonew/cd/casper/filesystem.squashfs
$ mksquashfs ./isonew/custom ./isonew/cd/casper/filesystem.squashfs
$ rm ./isonew/cd/md5sum.txt
$ cd isonew/cd/
$ find . -type f -print0 | xargs -0 md5sum > md5sum.txt
edit the very first splash using gimp
this is the one on the very first screen
$gimp ./isonew/cd/isolinux/splash.pcx
$ cd isonew/cd/
$ mkisofs -r -V “engrlivecd” -b isolinux/isolinux.bin -c isolinux/boot.cat -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -boot-info-table -o /home/lundeen2/cslive7000.iso .
June 11, 2008 Leave a comment
This is how I do voip at my house. Before I start, here are some of the features so you don’t have to read the entire article before you figure out it’s something you don’t want to do:
I’m sure this isn’t the best way, but it seems to work and was relatively easy to setup. The monthly cost turns out to be much much less than I was paying for my cellphone and also much cheaper (and better – though it takes more work) than going through some bozos like vonage. I will try to explain the details below. However, the short answer is gizmo, grandcentral, some hardware, and some software.
For my voip network I chose gizmo5. There are alternatives out there, but gizmo is cheap, it uses sip, and the client works on linux. I also seriously considered ekiga, but couldn’t figure out how to call regular phone numbers with it (doesn’t mean it’s not possible – but it’s not obvious how to do it). I also looked into skype, which just doesn’t compare.
Gizmo also has some cool features like the ability to record calls.
Gizmo’s website is located at http://gizmo5.com. They give sip to sip calls for free, and charge .02 for outgoing. They charge ~$30/year to reserve a local number, which you can optionally buy so you have a local telephone number. I chose not to do this and use grandcentral instead (see below). The disadvantage is people in my neighborhood have to use long distance to call me. It’s really unimportant to me though, as most of my friends and family primarily use cellphones or voip.
Note for your phone to work, this step is optional. However, this computer client can be used to make and receive calls from regular telephones.
For my computer, I bought a webcam. My model was the logitech quickcam communicate STX from newegg. Both the built-in microphone and the camera worked out of the box in ubuntu. It is cool to be able to use all the features like the webchat and recording conversations.
However, these were mostly just bonuses. My primary goal when I started was to replace my telephone.
For my real telephone I needed a voice gateway. For this I picked up an unlocked Linksys SPA3102 for about 60 shmackaroos. To configure it, I followed this guy’s tutorial for the most part http://www.voipuser.org/review_49.html.
I plugged the line port of the router directly into the wall RJ-11 outlet so all my regular telephones work when plugged into the wall.
Alternatively, you could setup an asterisk box here, but chances are it will be more complicated and more expensive. Also, it will be more feature rich, so it’s a trade off. There were basically no asterisk features I was dying for that I know about (the spa3102 and grandcentral already have more features than I know how to use) so I went the cheaper easier route. The only features I’ve really exploited so far are traffic redirections. eg I redirect 411 to 1-800-goog411. Although these features are basic, they are nice.
For regular telephones I bought a pair of the GE ultra slim set. I’ve been very happy with them so far. They transmit in the 6.0 GHz range so avoid a lot of the interference. They look sleek, and you can do cool shit with them like set ringtones.
So, I chose to tie it all together with grandcentral. With this I was able to have one 208 number (Idaho’s area code) for both my work and home phone (I also occasionally share my girlie’s cell phone, so I put that on there too). grandcentral also allows incoming calls to happen for free, since it is able to tie incoming pot calls and redirect them with sip to my gizmo schwag. I added the gizmo number to my grandcentral account.
Lastly, because I want people to call me back on this grandcentral number, I paid gizmo the $4/yr to be able to change my outgoing caller id with them.
Hopefully this helps some of you new people get started with voip. This was my first experience with it other than the occasional skype or ekiga call. My goal was to get a good working solution where it was feasible to replace my home phone – and I think this definitely is adequate. Do I care about not being able to call during internet or power outages? not really. In terms of the call quality and the extra features, I am very happy.
Anyways, thank you, I’m going to bed.
June 6, 2008 Leave a comment
Part of the reason why pid files often exist. This technique avoids parsing through ps output or rumaging around /proc.
From the man page:
Name Num Action Description
0 0 n/a exit code indicates if a signal may be sent
Here is example usage
lundeen2@lundeen-office:~$ ps
PID TTY TIME CMD
12833 pts/7 00:00:00 bash
12899 pts/7 00:00:00 ps
lundeen2@lundeen-office:~$ /bin/bash
lundeen2@lundeen-office:~$ ps
PID TTY TIME CMD
12833 pts/7 00:00:00 bash
12902 pts/7 00:00:00 bash
12968 pts/7 00:00:00 ps
lundeen2@lundeen-office:~$ kill -0 99999
bash: kill: (99999) – No such process
lundeen2@lundeen-office:~$ echo $?
1
lundeen2@lundeen-office:~$ kill -0 12902
lundeen2@lundeen-office:~$ echo $?
0
lundeen2@lundeen-office:~$ ps
PID TTY TIME CMD
12833 pts/7 00:00:00 bash
12902 pts/7 00:00:00 bash
12977 pts/7 00:00:00 ps
May 26, 2008 Leave a comment
These are some things I recently ran into when trying to restrict a certain ldap user to a certain number of hosts.
For example, at the school we have a cluster where we may only want the parallel processing students to have access, cadence where we may only want vlsi students to have access, and our main server where we want everyone to have access.
Here’s the preliminary way that seems to work. Here, I assume most of your ldap is setup.
First, add the account objectclass to your user. You may need to do some mangling here (for example if you use the inetorgperson objectclass). You can create your own joined schema for this. The reason you want the account objectclass is so you have access to the host attribute.
Next, for every user, add the restricted hosts you want that user to have access to. For example, for the cluster I add a host=skynet.coe.isu.edu attribute.
Finally, on skynet.coe.isu.edu, in ldap.conf, add
pam_check_host_attr yes
pam_filter |(host=skynet.coe)
Then on our main server do not add these, as these entries only restrict access to users with the applicable host attributes.
May 22, 2008 Leave a comment
slapcat.
There are a lot of ways to do this, and I have experimented with several.
For example, you can copy the master’s database files to the replica. But this comes with some restrictions. 1. Both hosts must have compatible versions of the dbm libraries2 both hosts must be roughly the same architecture 3 some methods of copying sparse dbm files (eg copy) will fill in the holes, making the files larger.
A more general way to backup an ldap database or to replicate the db is slapcat. eg.
root@master # slapcat -b “dc=myldap,dc=org” -l backupcontents.ldif
#… copy backupcontents.ldif to backup or slave
#Then, to restore or add or whatever
root@slave # slapadd -l backupcontents.ldif