User:Tonyr/Journal/Jul07

From FreekiWiki
Jump to navigation Jump to search

05Jul07

Airport Extreme
New to me: Airport Extreme cards don't 'just work' in Ubuntu. The driver is bdm43xx, but special magic is required to get the firmware from Mac OSX installed in the right place in the file system. The process is documented at https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx/Feisty. It requires installing package bcm43xxx-fwcutter, and the documentation therein explains where to get the firmware source files from Mac OSX.

Wireless network selection
Also new to me: Kathey Sutter pointed out that when configuring the wireless interface, setting the ESSID to auto and enabling roaming mode will result in the network icon in the menu bar providing a list of detected networks to choose from.

11Jul07

iMac power button mechanical failure
Jake worked on an iMac that wouldn't power on. He discovered that the front face button was not travelling inward far enough to contact and press the interior button mechanism. Pressing the interior button directly would work, i.e. the machine would power up. We decided that something about the metal chassis area holding the interior button mechanism must have been deformed somehow, just enough to defeat the minimum tolerance required for the button assembly to work. We couldn't see exactly what kind of adjustment would be necessary to bring the whole thing back into alignment.

12Jul07

Using network proxy for update
Michael said we should be using a proxy for updating software, especially if there are many updates, or if any update package is large (several megabytes). If it's only one or two small packages, it probably isn't necessary. A case in point is the Feisty OpenOffice update that appeared a couple of days ago that was over 70MB, if I remember correctly.

The FG proxy machine is proxy.fglan, and it uses port 3128 for apt updates. A way to specify this is with an entry in /etc/apt/apt.conf, which does not usually exist by default in Ubuntu. The entry looks like this:

Acquire
  {
     http::Proxy "http://proxy.fglan:3128";
     ftp::Proxy  "ftp://proxy.fglan:3128";
  }

Alternatively the lines could appear without the enclosing brackets as

Acquire::http::Proxy "http://proxy.fglan:3128";
Acquire::ftp::Proxy  "ftp://proxy.fglan:3128";

I'm not sure the ftp line is necessary, but it appears in all the examples I saw. Synaptic has a proxy configuration option in it's own Settings->Preferences menu, but the settings file only shows up in /root/.synaptic aas far as I can tell, and wouldn't extend back to cover apt in general. I think that /etc/apt/apt.conf applioes to every utility that uses apt.

What this means for the MacBuild process is that /etc/apt/apt.conf will need to be created before the update is done, and removed after it is finished. This may perhaps be automated in the cloning process by doing a chroot to the target installation partition/directory and invoking aptitude dist-upgrade. This calls for an experiment.

13Jul07

That proxy business
Well, Martin has put in place something called Transparent Proxy, making all that proxy stuff in yesterday's post unnecessary. So it goes.

14jul07

Pricing
According th the store price list, the difference between the hd/mem configurations 40/512 and 20/256 is $25 ($20 from mem, $5 from hd).

Yaboot options
The FreekBoxen boot option for new user creation is implemented as a script in run level 3, one of the otherwise unused Debian run levels (run level 2 is multi-user by convention, levels 3-5 default to multi-user). The script uses the oem-config script provided by the oem installation option. MacBuild should implement both of these practices (oem installation and new user boot option).

Basiccheck
Basiccheck is a Ruby script and a file of test specifications. This whole thing can be adapted to the Mac environment by modifying the tests.

15Jul07

Yaboot options
Along with the new-user boot option, x86 based Ubuntu installations by default have a rescue boot option that boots into single-user (root) mode. The PPC version never has had that as far as I can tell. Why is that, do you suppose?

It is relatively easy to add a boot stanza to /etc/yaboot.conf: make a copy of the Linux stanza, change the label to rescue, and change the append line to be append="single". This by itself does not work, because the PPC boot environment does not behave the same way as the x86 boot environment. Ubuntu, as of release 6.10(Edgy) is using a new init system called upstart, which does not pay any attention to runlevels. An accommodation has been made by the devs to have a semblance of backward compatibility with the earlier runlevels convention. There is a ramification for selecting a runlevel from bootloader menus. Before release 6.10, a runlevel specifier could be added to one of the lines in a boot stanza in menu.lst (grub) or yaboot.conf that would be digested and acted on. Since 6.10, only single or S is recognized, otherwise only the "default" runlevel 2 is available, and in the PPC version, even that is broken. A bug has been logged about this at Launchpad. All is not lost, however.

In upstart runlevels are selected at boot time by the event script in /etc/event.d/rc-default. The distributed version of this script doesn't know anything about runlevels 0,1,3,4,5,6. I found a modification out in webland, and tweaked it a little. Here is the PPC version:

# rc - runlevel compatibility
#
# This task guesses what the "default runlevel" should be and starts the
# appropriate script.

start on stopped rcS

script
        runlevel --reboot || true

        if grep -q -w -- "-s\|single\|S" /proc/cmdline; then
            telinit 1
        elif grep -qE -- "\<[0-6]\>" /proc/cmdline; then
            RL="$(grep -Eo -- "\<[0-6]\>" /proc/cmdline)"
            if [ -n "$RL" ]; then
                telinit $RL
            else
                 telinit 2
           fi
        elif [ -r /etc/inittab ]; then
            RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)"
            if [ -n "$RL" ]; then
                telinit $RL
            else
                telinit 2
            fi
        else
            telinit 2
        fi
end script

The x86 version is slightly different. The line that contains telinit 1 in the PPC version can be telinit S in the x86 version. telinit behaves differently on the two architectures: in x86 it stops all non-critical processes, and in PPC it does not. In fact, in the PPC version, invoking telinit S hangs the system. Somebody knows about this, since man telinit specifically warns against using it in the PPC release.

There are still things wrong in this script. Runlevel 6 means reboot, so using runlevel 6 in a boot stanza would cause and endless reboot loop. In pre-upstart releases, the sysV style init system allowed for (undocumented) additional runlevels 7,8,9. The script above has remnants of that. The accommodating telinit used with upstart does not recognize runlevels 7,8,9.

It sure would be nice if there were a way to make yaboot offer a menu of boot options like grub does.

Once the modifications described here are in place, it is a simple matter to add other boot stanzas to /etc/yaboot.conf for other runlevels, specifically runlevel 3 for the new-user (oem-config) option.

16Jul07

yaboot.conf and the boot menu
There are two different boot menus in the yaboot/PPC world. stage1 boot offers a limited selection of boot 'targets' like GNU/linux, cd, network, macosx. The boot prompt boot: offers another set of boot options garnered from /etc/yaboot.conf, namely one for every boot stanza. stage1 does not offer the flexibility that we are looking for to implement a boot menu with the new-user boot option. yaboot.conf has enough options to create a reasonable boot menu facade presented to the user.

Here is the yaboot.conf that I have come up with. It adds single-key boot function for each of the boot stanzas, and presents a boot menu resembling the stage1 boot menu, using single letters for each of the useful boot images. This is possible using the global single-key option and a single letter alias in each of the stanzas. The boot menu is just a text file boot_message in the root directory of the default device and partition (/dev/hda, 3). I have add some other things, also: stage1 boot options for netboot and OpenFirmware boot, timeout/delay values that allow some time to make selections from each of the menus, and a marker on the default boot image (Linux). yaboot.conf:

## yaboot.conf generated by the Ubuntu installer
##
## run: "man yaboot.conf" for details. Do not make changes until you have!!
## see also: /usr/share/doc/yaboot/examples for example configurations.
##
## For a dual-boot menu, add one or more of:
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

boot=/dev/hda2
device=/pci@f2000000/mac-io@17/ata-4@1f000/disk@0:
partition=3
root=/dev/hda3
timeout=50
delay=10
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
default=Linux
message=boot_message
enablecdboot
enableofboot
enablenetboot

image=/boot/vmlinux
	label=Linux
        alias=l
	read-only
	single-key
	initrd=/boot/initrd.img
	append="quiet splash"

image=/boot/vmlinux
	label=rescue
        alias=r
	single-key
	read-only
	initrd=/boot/initrd.img
	append="single"

image=/boot/vmlinux
	label=runlevel_3
	alias=n
	single-key
	read-only
	initrd=/boot/initrd.img
	append="quiet splash 3"

image=/boot/vmlinux.old
	label=old
	alias=o
	single-key
	read-only
	initrd=/boot/initrd.img.old
	append="quiet splash"

The boot_message file:

Press  l for Linux
       r for rescue
       n for new user
       o for old Linux
or wait 10 seconds for Linux auto boot

These need to be added to the disk replicator, along with the /etc/event.d/rc-default replacement mentioned earlier.

Replicator tweaks
The disk replicator makes several modifications to files in the the rsync'd image. The PC Build Ubuntu installation process does modifications like this using a package of local modifications. The things in the replicator, and the upstart and yaboot.conf modifications described earlier should collected into a package for PPC installation modifications.

19Jul07

Net Install Revisited
Lots o' changes goin' down. FG has Feisty repos for both x86 and ppc. PC Build is heading toward using Feisty for its standard installation, and word is that they are going to use a standard network install instead of imaged hard drives. The groundwork is being done to include MacBuild support. So Macbuild should be focusing effort on implementing the network installation process. Earlier work on this is reported in Apr07. The issues of runlevels and boot options still need to be incorporated into this process.

20Jul07

Replicator tweaks
After consulting with Vagrant and Dave, mods for runlevel handling should be abandoned and some other mechanism adopted to replaces whatever runlevels are used for. Dave suggested not changing anything if there are no complaints about Macs. I don't see why changes that are only yaboot.conf related (boot menu, single user boot option) shouldn't be implemented.

Radeon video and DVI-VGA adapter
There is a G4 tower in work that has an an ATI Radeon 9000 video card. The card has a DVI connector and an ADC connector. Since that standard FG monitor is a VGA monitor, a DVI-VGA adapter cable is the logical thing to use for attaching a VGA monitor. MacBuild also keeps ADC monitors available for sale in the store or for attaching to systems.

Unfortunately, there are problems with Ubuntu Xorg version and the family of Radeon video cards that the 9000 belongs to. The Xserver crashes when attempting to determine the proper sync values/resolutions of a VGA monitor that is connected through the adapter. This problem has been reported as a bug in Launchpad and Bugzilla, although usually in conjunction with dual-monitor setups. What it means for FG MacBuild is that this system cannot support a VGA monitor with Ubuntu installed. There is apparently no problem with Mac OSX using a VGA monitor with the adapter, nor is there a problem using an ADC monitor. This system must either be sold without an OS, or with an ADC monitor if Ubuntu is installed.

In reading various posts about this problem, a couple of possible workarounds were suggested. I have not tried the LiveCD with this setup, either. Both of these possibilities are worth pursuing.


24Jul07

Pismo video
Pismo (early G3 Powerbook) has video problems with xorg. There is an xorg.conf fix described at http://ubuntuforums.org/showthread.php?t=418301.

25Jul07

Dual Cpu MDD
Been workin' on a dual cpu mirror drive door G4 tower. This one has several idiosyncrasies. The video card is a Radeon 9000, and has only ADC and DVI connectors. Installation with a 17" Apple Studio Display ADC CRT works, but the xorg.conf produced is minimal, having only one screen resolution: 1280x1024. I haven't tried a DVI monitor on the other connector, but a VGA monitor on that connector using a DVI-ADC adapter does not work. dpkg-reconfigure seems to work alright, but at login time the Xserver crashes trying to setup the 'int10 module. Google turned up several similar complaints, most of which are associated with dual display setups. The sound interface was not onfigured during installation so I added snd-powermac to /etc/modules. The removeable media drive is a DVD-RW. It won't recognize a CD or DVD when one is inserted, kicks it back out, and then opens again automatically when closed. I've seen this behavior before, and I think it got solved. I'll have to see if I made a journal entry about it.

Computers 4 Kids
A man and woman from LA visited this afternoon interested in acquiring old (beige colored) Macs and looking for a place to recycle PCs. They come up to Coos Bay/North Bend abot three times a year, and talked about driving a truck up to swap PCs for old Macs. FG does not have the facilities to store old Mac computers for that long. I mentioned Nextstep Recycling in Eugene to them, as did Richard, as a possible alternative The woman's name is Marie deBello; the guy's name is Noah <something>. She left me a card but I gave it to Liane. She left another card with someone else