Tiny Core + HP Mini 1001
Last updated 21.February.2010
These are my ongoing notes from installing Tiny Core Linux (ver 2.8 as of February 2010) to an HP Mini 1001TU Netbook. My installation is up and running, but it is forever incomplete. These notes document my work-in-progress.
USB Boot
Just follow the tutorial at the TC wiki.
I initially booted TC on a stick. I created the stick from within Linux using standard ISO and GRUB. This works well with 2.0, but no earlier TC version. I have since tried persistent hard drive installations with each, and had the same results - only 2.0+ works. I haven't done much to investigate why as yet, but I think it has to do with my Marvell network adapter.
Over time, I made and used 3 different USB boot sticks on this system:
- Tiny Core Linux 1.4 (manually created on another Tiny Core laptop)
- Tiny Core Linux 2.0 (manually created on another Tiny Core Laptop)
- GParted (created using Unetbootin/Windows XP)
- Xubuntu Live Desktop (created using Unetbootin/Windows XP)
Repartitioning
My HP Mini came with a 60 GB hard drive. I could have shelled out another $100 for a Toshiba with 120 GB, but I really liked the overall package on the Mini (scold me if you must).
Repartitioning process:
- Clear off unneeded data - down to about 8.5gb total
- BACK UP EVERYTHING (CYA)
- turn off Windows paging file (Start->Control Panel->System->Advanced, somewhere in there)
- defragment hard drive down to 0% fragmentation (for my own sanity)
- Run
chkdsk /fjust to make sure everything is stable on the hard drive, then reboot twice. - Install Gparted to USB stick (download the GParted ISO file and installed using Unetbootin on Windows. I had no trouble with this.)
- Reboot using Gparted USB boot stick
- Resize NTFS partition (I chose 12 GB for my Windows partition), then add a FAT32 partition (40GB) and a linux swap partition (2.5 GB or so).
- Reboot, all done!
Personally, I had no drama with this.
Interim: Xubuntu
Yes, this is a tutorial on installing Tiny Core ... but I'll also be using Xubuntu in a pinch.
After partitioning (above), I installed the current Xubuntu ISO to my USB stick using Unetbootin. The process worked fine. So fine that that I made this Xubuntu section of this little article using the first boot off that boot stick.
Networking, graphics, touchpad all work very well on Xubuntu USB boot. I followed up by installing Xubuntu to hda2, and then moved on to installing TC.
TC from Xubuntu partition
I decided to make a frugal TC install from the same partition as Xubuntu. For me, this was hda2. My process:
- get the TC iso
- mount the TC iso to a temporary location
- copy the iso /boot directory contents to the hard drive
- add the TC kernel to /boot/grub/menu.lst
- reboot
In the end, reasonably simple. For clarification I used:
- stock TC 2.0 iso
- placed the ISO contents into a subdirectory at /boot/tc_2.0/
- made TC my default boot (top of the menu.lst listing)
- use kernel options: quiet vga=788
So far, this works for me. It also makes it simple to upgrade TC - I simply make a new subdirectory (eg: /boot/tc_2.1) then add that stanza to GRUB's menu.lst file.
Extensions
I store my extensions in a directory on a separate, data partition. I use this partition to share data amongst TC, Xubuntu, and Windows. Because it's a shared space, this partition is FAT32.
The directory is /tce, and TC detects it fine. No problems.
Network Hardware
Vanilla TC 2.0 did not initially find and enable the network card. This was rare, but has a simple solution. The hardware:
- Marvell Yukon 88E8040 PCI-E Fast Ethernet Controller (physical)
- Broadcom 802.11b/g WLAN (wireless)
The necessary Marvell modules are included with stock TC 2.0. The Broadcom wireless card requires the wl.tcem extension.
It took lots of R&D to get the Marvell card working. The stock modules are fine, but the card is whiny. For the plain-jane physical network cable, the Marvell card works on a warm boot, but not a cold boot. So:
- Boot TC
- plug in your network cable - no network support yet.
- reboot TC with the cable still in
- TC will detect the hardware & connection. Run Netcardconfig in the Control Panel
This works for me.
I hypothesize that the Marvell card stays silent at boot because of a power-saving feature that keeps the card turned off. I experimented with USB wait times thinking this might help, but no luck. When I need it, I have to plug in the cable and reboot.
Once the physical network access works, then the Broadcom extension can be downloaded (wl.tcem). Modprobe the wl extension, then run the setup script (/opt/eth0.sh). The Broadcom card gets randomly labeled as eth0 or eth1 depending upon whether the kernel finds the Marvel card first.
I originally used TC's /opt/eth0.sh and /opt/eth1.sh files to set up the wireless connection. TC creates each one as it sets up your network card - use the control panel. Long term, however, this has been unreliable.
The main issue is that the kernel label (eth0, eth1) depends upon the order the network cards are discovered. This changes at random, making it difficult for me to reliably make a connection.
My solution uses:
- A udev rule file (/etc/udev/net/97-networkcard.rules) that assigns the name "wifi0" to the network card. This file is backed up and restored by filetool (/opt/.filetool.lst)
- A simple script that sets up the connection on boot by calling ifconfig, iwconfig, and then busybox udhcpc
My udev rule looks like:
KERNEL=="eth*", ATTR{address}=="00:23:4d:87:30:e3", NAME="wifi0"
And the script looks like:
#!/bin/sh
CARD="wifi0"
killall udhcpc
ifconfig $CARD down
ifconfig $CARD up
iwconfig $CARD essid Thomases
iwconfig $CARD commit
udhcpc -i $CARD -q -n -h box
Graphics
The 'natural' 1024x600x32 resolution of the HP Mini requires the 915resolution extension. Then the extended resolution can be set using a standard Xvesa call.
First, get/load the extension and put it in your tce directory. Then, edit the file ~/.xession to change the resolution (don't forget to backup your home directory). On reboot, the setting should stick.
To set the X mode without rebooting, just exit to a terminal. Then type 'exit', log back in as 'tc' (no password required).
Audio Hardware
If you're wondering why your external microphone won't work, it is not a software problem. I was not the first to encounter that obstacle, but I did bother to write a short blurb on using the Mini's uncommon Audio Jack.
I used to use a couple of extensions to get ALSA working, but TC 2.3.1 just needs alsa.tcel.
The Mini's sound card produces an annoying click when it auto-powers down. Thanks to Curaga's advice about this.
By default, this feature is enabled, and kicks in about 5 seconds after the card gets twiddled. To check its status, use:
cat /sys/module/snd_hda_intel/parameters/power_save
Any value > 0 means that power-saving is enabled. To disable it, you can pass the parameter as an argument to a modprobe call. I've added the following to /opt/bootlocal.sh, so this is automatically taken care of at boot:
sudo modprobe -r snd-hda-intel
sudo modprobe -i snd-had-intel power_save=0
I do have a few remaining issues:
- On reboot, the system speaker is muted. I have to manually reset that each time. It is possible to fix this using bootlocal.sh (but I haven't as yet).
- The system speaker volume goes silent when it is set at 50/100 in alsamixer.
- Other audio extensions muck with the working ones. Installing the alsa-oss extension is particularly frustrating. I have not yet been able to get OSS working (Sept 2009).
- The sound card sometimes goes to sleep, affecting both Linux and Windows. If I restart and switch operating systems, the card still doesn't respond. It only wakes back up after a power down. I don't yet know what makes it go to sleep, or what will bring it back up.
Many HP Mini users (of all the different models) have had trouble getting sound working. Basically, the Mini's hardware doesn't play nice with the stock ALSA and OSS modules.
This problem is slightly odd because netbook hardware is relatively standardized. This audio card is supposedly pretty common. Linux does detect the hardware fine, though. lspci -v generates:
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
I'll drop a note if I ever figure out the above issues. For now, I'm glad to have gotten this far.
SD Card Slot
Works great. I just mount it as sda1.
Suspend and Hibernate
The suspend extension (suspend.tcz) works straight away. Use sudo:
[code]
s2ram -f --vbe_save
[/code]
I am still working to get hibernate set up. I had previously tried hibernate (s2disk) on my HP Evo N410c, but I haven't worked on that for this laptop. I'll sink some time into it, and see if it's worth it.
Other projects
I'm happy to say that I compiled and run pilot-tools from this little netbook. Stable and chipper, but it doesn't like disconnecting from the usb port after each sync. I will keep on that project.
Resources
Other HP Mini + Linux resources (esp 1001's):
To Do
- Xorg setup - esp for touchpad
- Hibernate (suspend to disk; s2disk) - this will require modifying the stock tinycore.gz






