You are not logged in.
Following the WiKi ISO remstering guide I've made my first testing ISO image. It boots fine in qemu untill the point where you have to enter /arch/setup. I've had no time for real testing. So feel free to try if it really boots and can be used for installing Arch64. Watch all log messages and give feedback. I'll try to get it working as soon as possible. Then much more user should be able to install Arch64
There's only one thing that slows me down: my very slow upload of 128kb/s. The upload took me over 3 hours :?
133MB big. So here it is: http://arch64.org/packages/iso/arch-0.7 … 4-base.iso
Warning: This is no official release from ArchLinux. It's maybe even not what I should call a BETA. So don't claim me if your system we be totally broken.
Good luck!
AndyRTR
Offline
God damn, you're fast!
I just found the wiki and wanted to start working on the ISO....
okay. I'll download it it give it a test!
Moritz
EDIT:
okay, after BusyBox info stuff I'll get this message:
/bin/sh: can't access tty; job control turned off
running /bin/sh by gave me the same error.
I'll try the cd on another pc now.
EDIT2:
Same shit, different pc!
Offline
Same here dropped to sh.....
Is there a way to start init from reduced shell ?
then at least we could test out install part
Mr Green
Offline
...
/bin/sh: can't access tty; job control turned off
running /bin/sh by gave me the same error.
...
That's exactly what I have seen in qemu. I followed the Wiki just replacing all packages in /arch/pkg. I guess it has to do with the folder, where I had to put our kernel and initrd. But Kernel and initrd(full) should be fine. They are just the same we use on regular boot for a few weeks now. And I've changed 2 txt files there. One is the boot menu. There I removed the scsi kernel entry. The other is the short instruction file where I've added a short comment.
I didn't touch the addons folder so far because I don't know how to create those addons for x86_64.
I'm not sure what breaks it at the moment. Can you see something on tty(1-7). I guess not because of the error message.
Maybe someone could mount the iso-file and check it.
Any suggestions are welcome!
AndyRTR
Offline
Can anybody mount the iso and check the size of the inird? I guess I've not taken the full inird but the small initrd without some drivers. I'm not sure. I'll check this later at home.
Offline
There is no tty1-6. I could only find /dev/tty
I found some solutions in google, but none of them worked:
- I've tried changing -boot-load-size from 4 to 8 (running mkisofs). Nothing.
- I've had a look at the iso and noticed that the initrd.img is just about 1,5MB. My initrd-full.img is about 3,2MB. I moved my full to isolinux and created a new iso. Nothing.
- I read that ramdisk=8192 should be added to lilo to solve that problem. <-- EDIT: this is crap...
andyrtr: Did you used the 0.7.1-base for your groundwork? Because SCSI-stuff shouldn't be present at that cd. I'll probably download it and give the wiki-guide a new try
Regards,
Moritz
Offline
Ok. You may give it another try doing your own. Just don't use my iso for customizing. Do a fresh download for the i686 BASE ISO. Maybe mine is not a final version.
Step to go following the Wiki:
- mount the iso file
- replace all packages in /arch/pkg
- generate current.db.tar.gz using this script:
http://wiki.archlinux.org/index.php/Cus … nd_gensync
(it puts a custom.db.tar.gz into /tmp which you will have to copy and rename)
- replace /arch/pkg/setup folder with the one from my iso. These 2 files should be ok. One is our pacman package the other a list of available packages.
- try to fiddle around with the isolinux folder!
Andy
Offline
I'm on my way to burn it, but mkisofs gives me that warning:
Warning: creating filesystem that does not conform to ISO-9660.
I'll burn it anyway and test it...
Regards,
Moritz
Offline
Okay, same problem on my CD.
I've got another idea: is the boot-cd kernel image identical to the normal kernel?
I've copied the normal kernel to CD, maybe something has to be changed for a bootcd kernel image...
Regards,
Moritz
EDIT: I've tried to extract the kernel-config from i686-boot-cd-kernel but was not succesfull:
ERROR: Unable to extract kernel configuration information.
This kernel image may not have the config info.
Who made the i686-disc and could answer this question?
Offline
the glibc package needs to be fixed before you can release the iso!!!!
it should be
# $Id: PKGBUILD,v 1.40 2005/11/04 10:20:34 jgc Exp $
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=glibc
pkgver=2.3.5
pkgrel=8
# glibc doesn't release very often, so we often use CVS snapshots to
# stay up-to-date with new features. Snapshots are available from Fedora
_snap=20050524T1606
_hdrver=2.6.12.0
pkgdesc="GNU C Library with NPTL and linuxthreads"
url="http://www.gnu.org/software/libc"
depends=()
source=(ftp://ftp.archlinux.org/other/glibc/glibc-${_snap}.tar.bz2
ftp://ftp.archlinux.org/other/glibc/glibc-fedora-${_snap}.tar.bz2
http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-${_hdrver}.tar.bz2
glibc-fedora.patch
glibc-20050524-20050727.patch
glibc-zh_TW.patch
glibc-20050727-20050815.patch
nscd)
md5sums=('8543c324cdd8c43aea280fa3738f8186' 'ea77b628e06890d36248f2199c3cc1d5'
'eae2f562afe224ad50f65a6acfb4252c' 'c6768e173970d5ad04de1927baf1306f'
'29ec3c34425c0460b5d8073b0396b0fd' 'f12227b71659f1dd9b1ef7ee6d630b63'
'66442b650f6e1c6eb6aef543023972c6' 'cb05c700433da449b137e277165fa585')
build() {
# Kernel Headers
mkdir -p ${startdir}/pkg/usr/include
cp -r linux-libc-headers-${_hdrver}/include/linux ${startdir}/pkg/usr/include/linux
cp -r linux-libc-headers-${_hdrver}/include/asm-x86_64 ${startdir}/pkg/usr/include/asm
find ${startdir}/pkg -type d -exec chmod 755 {} ;
find ${startdir}/pkg -type f -exec chmod 644 {} ;
echo "" > ${startdir}/pkg/usr/include/linux/config.h
chown -R root.root ${startdir}/pkg/usr/include
cd ${startdir}/src/glibc-${_snap}
patch -E -Np1 -i ${startdir}/src/glibc-fedora.patch || return 1
patch -Np1 -i ${startdir}/src/glibc-20050524-20050727.patch || return 1
patch -Np1 -i ${startdir}/src/glibc-zh_TW.patch || return 1
patch -Np1 -i ${startdir}/src/glibc-20050727-20050815.patch || return 1
find . -type f -size 0 -o -name "*.orig" -exec rm -f {} ;
mkdir build-linuxthreads
cd build-linuxthreads
if echo '__thread int a;' | gcc -xc - -S -o /dev/null 2>/dev/null; then
sed -i -e 's/0 [|][|]/1 ||/' ../elf/tst-tls10.h ../linuxthreads/tst-tls1.h
fi
AddOns=`cd .. && echo */configure | sed -e 's!/configure!!g;s!(linuxthreads|nptl|rtkaio)( |$)!!g;s! +$!!;s! !,!g;s!^!,!;/^,*$/d'`
CFLAGS="${CFLAGS} -DNDEBUG=1" ../configure --prefix=/usr
--enable-add-ons=linuxthreads${AddOns} --without-cvs
--enable-kernel=2.4.1 --disable-profile
--with-headers=$startdir/pkg/usr/include
--enable-bind-now --with-tls --without-__thread
--build ${CHOST} --host ${CHOST}
make -r CFLAGS="${CFLAGS}" || return 1
make install_root=${startdir}/pkg install || return 1
make install_root=${startdir}/pkg localedata/install-locales || return 1
cd ..
mkdir build-nptl
cd build-nptl
CFLAGS="${CFLAGS} -DNDEBUG=1" ../configure --prefix=/usr
--enable-add-ons=nptl${AddOns} --without-cvs
--enable-kernel=2.6.6 --disable-profile
--with-headers=$startdir/pkg/usr/include
--enable-bind-now --with-tls --with-__thread
--build ${CHOST} --host ${CHOST}
make -r CFLAGS="${CFLAGS}" || return 1
cd build-nptl
mkdir -p ${startdir}/pkg/lib/tls/
libcsofile=`basename ${startdir}/pkg/lib/libc-*.so`
cp -a libc.so ${startdir}/pkg/lib/tls/${libcsofile}
ln -sf ${libcsofile} ${startdir}/pkg/lib/tls/`ls libc.so.*`
libmsofile=`basename ${startdir}/pkg/lib/libm-*.so`
pushd math > /dev/null
cp -a libm.so ${startdir}/pkg/lib/tls/${libmsofile}
ln -sf ${libmsofile} ${startdir}/pkg/lib/tls/`ls libm.so.*`
popd > /dev/null
librtsofile=`basename ${startdir}/pkg/lib/librt-*.so`
pushd rt > /dev/null
cp -a librt.so ${startdir}/pkg/lib/tls/${librtsofile}
ln -sf ${librtsofile} ${startdir}/pkg/lib/tls/`ls librt.so.*`
popd > /dev/null
libthreaddbsofile=`basename ${startdir}/pkg/lib/libthread_db-*.so`
pushd nptl_db > /dev/null
cp -a libthread_db.so ${startdir}/pkg/lib/tls/${libthreaddbsofile}
ln -sf ${libthreaddbsofile} ${startdir}/pkg/lib/tls/`ls libthread_db.so.*`
popd > /dev/null
libpthreadsofile=libpthread-${pkgver}.so
pushd nptl > /dev/null
cp -a libpthread.so ${startdir}/pkg/lib/tls/${libpthreadsofile}
ln -sf ${libpthreadsofile} ${startdir}/lib/tls/`ls libpthread.so.*`
popd > /dev/null
mkdir -p ${startdir}/pkg/usr/lib/nptl
cp -a libc.a nptl/libpthread.a nptl/libpthread_nonshared.a rt/librt.a
${startdir}/pkg/usr/lib/nptl
for lib in libc libpthread; do
sed -e "s:/lib/${lib}.so:/lib/tls/${lib}.so:g"
-e "s:/usr/lib/${lib}_nonshared.a:/usr/lib/nptl/${lib}_nonshared.a:g"
${startdir}/pkg/usr/lib/${lib}.so
> ${startdir}/pkg/usr/lib/nptl/${lib}.so
chmod 755 ${startdir}/pkg/usr/lib/nptl/${lib}.so
done
ln -sf ../librt.so ${startdir}/pkg/usr/lib/nptl/librt.so
mkdir -p ${startdir}/pkg/nptl ${startdir}/pkg/usr/include/nptl
make install_root=${startdir}/pkg/nptl install-headers || return 1
pushd ${startdir}/pkg/nptl/usr/include > /dev/null
for i in `find . -type f`; do
if ! [[ -f ${startdir}/pkg/usr/include/${i} ]]
|| ! cmp -s ${i} ${startdir}/pkg/usr/include/${i}; then
mkdir -p ${startdir}/pkg/usr/include/nptl/`dirname ${i}`
cp -a ${i} ${startdir}/pkg/usr/include/nptl/${i}
fi
done
popd > /dev/null
rm -rf ${startdir}/pkg/nptl
rm -rf ${startdir}/pkg/etc/ld.so.cache ${startdir}/pkg/etc/localtime
install -D -m644 ${startdir}/src/glibc-${_snap}/nscd/nscd.conf ${startdir}/pkg/etc/nscd.conf
install -D -m755 ${startdir}/src/nscd ${startdir}/pkg/etc/rc.d/nscd
sed -i -e 's/^tserver-user/#tserver-user/' ${startdir}/pkg/etc/nscd.conf || return 1
# arch64: link the libs
cd $startdir/pkg
mv lib64/* lib/
rmdir lib64/
ln -s lib lib64
cd usr/
mv lib64/* lib/
rmdir lib64/
ln -s lib lib64
}
Offline
the glibc package needs to be fixed before you can release the iso!!!!
it should be
# $Id: PKGBUILD,v 1.40 2005/11/04 10:20:34 jgc Exp $
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=glibc
pkgver=2.3.5
pkgrel=8
# glibc doesn't release very often, so we often use CVS snapshots to
# stay up-to-date with new features. Snapshots are available from Fedora
_snap=20050524T1606
_hdrver=2.6.12.0
pkgdesc="GNU C Library with NPTL and linuxthreads"
url="http://www.gnu.org/software/libc"
depends=()
source=(ftp://ftp.archlinux.org/other/glibc/glibc-${_snap}.tar.bz2
ftp://ftp.archlinux.org/other/glibc/glibc-fedora-${_snap}.tar.bz2
http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-${_hdrver}.tar.bz2
glibc-fedora.patch
glibc-20050524-20050727.patch
glibc-zh_TW.patch
glibc-20050727-20050815.patch
nscd)
md5sums=('8543c324cdd8c43aea280fa3738f8186' 'ea77b628e06890d36248f2199c3cc1d5'
'eae2f562afe224ad50f65a6acfb4252c' 'c6768e173970d5ad04de1927baf1306f'
'29ec3c34425c0460b5d8073b0396b0fd' 'f12227b71659f1dd9b1ef7ee6d630b63'
'66442b650f6e1c6eb6aef543023972c6' 'cb05c700433da449b137e277165fa585')
build() {
# Kernel Headers
mkdir -p ${startdir}/pkg/usr/include
cp -r linux-libc-headers-${_hdrver}/include/linux ${startdir}/pkg/usr/include/linux
cp -r linux-libc-headers-${_hdrver}/include/asm-x86_64 ${startdir}/pkg/usr/include/asm
find ${startdir}/pkg -type d -exec chmod 755 {} ;
find ${startdir}/pkg -type f -exec chmod 644 {} ;
echo "" > ${startdir}/pkg/usr/include/linux/config.h
chown -R root.root ${startdir}/pkg/usr/include
cd ${startdir}/src/glibc-${_snap}
patch -E -Np1 -i ${startdir}/src/glibc-fedora.patch || return 1
patch -Np1 -i ${startdir}/src/glibc-20050524-20050727.patch || return 1
patch -Np1 -i ${startdir}/src/glibc-zh_TW.patch || return 1
patch -Np1 -i ${startdir}/src/glibc-20050727-20050815.patch || return 1
find . -type f -size 0 -o -name "*.orig" -exec rm -f {} ;
mkdir build-linuxthreads
cd build-linuxthreads
if echo '__thread int a;' | gcc -xc - -S -o /dev/null 2>/dev/null; then
sed -i -e 's/0 [|][|]/1 ||/' ../elf/tst-tls10.h ../linuxthreads/tst-tls1.h
fi
AddOns=`cd .. && echo */configure | sed -e 's!/configure!!g;s!(linuxthreads|nptl|rtkaio)( |$)!!g;s! +$!!;s! !,!g;s!^!,!;/^,*$/d'`
CFLAGS="${CFLAGS} -DNDEBUG=1" ../configure --prefix=/usr
--enable-add-ons=linuxthreads${AddOns} --without-cvs
--enable-kernel=2.4.1 --disable-profile
--with-headers=$startdir/pkg/usr/include
--enable-bind-now --with-tls --without-__thread
--build ${CHOST} --host ${CHOST}
make -r CFLAGS="${CFLAGS}" || return 1
make install_root=${startdir}/pkg install || return 1
make install_root=${startdir}/pkg localedata/install-locales || return 1
cd ..
mkdir build-nptl
cd build-nptl
CFLAGS="${CFLAGS} -DNDEBUG=1" ../configure --prefix=/usr
--enable-add-ons=nptl${AddOns} --without-cvs
--enable-kernel=2.6.6 --disable-profile
--with-headers=$startdir/pkg/usr/include
--enable-bind-now --with-tls --with-__thread
--build ${CHOST} --host ${CHOST}
make -r CFLAGS="${CFLAGS}" || return 1
cd build-nptl
mkdir -p ${startdir}/pkg/lib/tls/
libcsofile=`basename ${startdir}/pkg/lib/libc-*.so`
cp -a libc.so ${startdir}/pkg/lib/tls/${libcsofile}
ln -sf ${libcsofile} ${startdir}/pkg/lib/tls/`ls libc.so.*`
libmsofile=`basename ${startdir}/pkg/lib/libm-*.so`
pushd math > /dev/null
cp -a libm.so ${startdir}/pkg/lib/tls/${libmsofile}
ln -sf ${libmsofile} ${startdir}/pkg/lib/tls/`ls libm.so.*`
popd > /dev/null
librtsofile=`basename ${startdir}/pkg/lib/librt-*.so`
pushd rt > /dev/null
cp -a librt.so ${startdir}/pkg/lib/tls/${librtsofile}
ln -sf ${librtsofile} ${startdir}/pkg/lib/tls/`ls librt.so.*`
popd > /dev/null
libthreaddbsofile=`basename ${startdir}/pkg/lib/libthread_db-*.so`
pushd nptl_db > /dev/null
cp -a libthread_db.so ${startdir}/pkg/lib/tls/${libthreaddbsofile}
ln -sf ${libthreaddbsofile} ${startdir}/pkg/lib/tls/`ls libthread_db.so.*`
popd > /dev/null
libpthreadsofile=libpthread-${pkgver}.so
pushd nptl > /dev/null
cp -a libpthread.so ${startdir}/pkg/lib/tls/${libpthreadsofile}
ln -sf ${libpthreadsofile} ${startdir}/lib/tls/`ls libpthread.so.*`
popd > /dev/null
mkdir -p ${startdir}/pkg/usr/lib/nptl
cp -a libc.a nptl/libpthread.a nptl/libpthread_nonshared.a rt/librt.a
${startdir}/pkg/usr/lib/nptl
for lib in libc libpthread; do
sed -e "s:/lib/${lib}.so:/lib/tls/${lib}.so:g"
-e "s:/usr/lib/${lib}_nonshared.a:/usr/lib/nptl/${lib}_nonshared.a:g"
${startdir}/pkg/usr/lib/${lib}.so
> ${startdir}/pkg/usr/lib/nptl/${lib}.so
chmod 755 ${startdir}/pkg/usr/lib/nptl/${lib}.so
done
ln -sf ../librt.so ${startdir}/pkg/usr/lib/nptl/librt.so
mkdir -p ${startdir}/pkg/nptl ${startdir}/pkg/usr/include/nptl
make install_root=${startdir}/pkg/nptl install-headers || return 1
pushd ${startdir}/pkg/nptl/usr/include > /dev/null
for i in `find . -type f`; do
if ! [[ -f ${startdir}/pkg/usr/include/${i} ]]
|| ! cmp -s ${i} ${startdir}/pkg/usr/include/${i}; then
mkdir -p ${startdir}/pkg/usr/include/nptl/`dirname ${i}`
cp -a ${i} ${startdir}/pkg/usr/include/nptl/${i}
fi
done
popd > /dev/null
rm -rf ${startdir}/pkg/nptl
rm -rf ${startdir}/pkg/etc/ld.so.cache ${startdir}/pkg/etc/localtime
install -D -m644 ${startdir}/src/glibc-${_snap}/nscd/nscd.conf ${startdir}/pkg/etc/nscd.conf
install -D -m755 ${startdir}/src/nscd ${startdir}/pkg/etc/rc.d/nscd
sed -i -e 's/^tserver-user/#tserver-user/' ${startdir}/pkg/etc/nscd.conf || return 1
# arch64: link the libs
cd $startdir/pkg
mv lib64/* lib/
rmdir lib64/
ln -s lib lib64
cd usr/
mv lib64/* lib/
rmdir lib64/
ln -s lib lib64
}
i haven't tested this yet, but it should work. I'll test it after breakfast!
Offline
Comparing with 32bit boot cd the next step is loading stuff from "addons".
addons looks like:
ls -1 /home/daten/arch64/iso/newiso/addons/
mods-base.tar.bz2
mods-ethernet.tar.bz2
mods-firewire.tar.bz2
mods-fs.tar.bz2
mods-pcmcia_wlan.tar.bz2
mods-raid.tar.bz2
mods-scsi.tar.bz2
mods-usb.tar.bz2
utils-consolefonts.tar.bz2
utils-devmapper.tar.bz2
utils-ext2.tar.bz2
utils-fdisk.tar.bz2
utils-jfs.tar.bz2
utils-kbd.tar.bz2
utils-keymaps.tar.bz2
utils-lvm.tar.bz2
utils-mdadm.tar.bz2
utils-ntfs.tar.bz2
utils-pcmcia.tar.bz2
utils-reiserfs.tar.bz2
utils-wireless.tar.bz2
utils-xfs.tar.bz2
But I don't how to build these files! Devs - help us please!
Offline
Modules are new now but utils still have to be done. The error is still the same.
Offline
there is a problem with linuxrc its not starting .... nodes are not being created at all
is it something to do with how you created iso or syslinux?
get init working the rest will follow....
can you tell us how you made iso then we may be able to try it for ouyselves save you uploading it again till it works
HTH
Mr Green
Offline
I just follow the Wiki. Have posted the steps above. Now I have done all addons but still get the error.
Some similar error messages always have to do with the initrd.
Offline
initrd strikes fear in all who use it lol
Take a step back do not worry so much about packages ... for now ...
mkiso (whatever!) is a very powerful command ...
You have got half the battle won by the fact it even boots ... ;-)
dropping to shell means something (maybe simple!) has gone wrong
I would be happy to test iso for you as my iso building skills are limited
more to the point I'm still running 32 bit, I dare not run pacman -Syu xorg might get updated lol
We all support you in what you are trying to do take your time iso will get done soon
best wishes
Mr Green
Offline
I got it booting into the installer here. Problem was that I had replaced the isolinux/initrd.img with the one from my system. That was totally stupid. The initrd on the iso is a whole filesystem with much more. It includes busybox and such stuff.
It just bootet here with the 32bit version without any changed. I came to the point where I had to setup my network card. And all that in qemu.
Now I try to replace every binary on it with our 64 bit versions.
We soon should have a real booting version. Let's see if it will can do even more.
AndyRTR
Offline
I'm just uploading the BETA2 right into the same folder. In qemu it boots fine. But it still uses the 32bit initrd. Let's see, if we can live with that.
EDIT: http://arch64.org/packages/iso/arch-0.7 … 4-base.iso
AndyRTR
Offline
ok BETA2 boots & you can run arch/setup
but... not CD-rom ;-(
Mr Green
Offline
Is the installer starting? Any error output on one of the ttys?
Offline
Sorry yes installer starts but I cannot load from CD device not found...
Mr Green
Offline
Looks like I missed recompiling our kernel with all IDE/SCSI/SATA modules built in. It will be my task for tomorrow.
Offline
I'm having more trouble than expected replacing all 32 bit components with our 64 bit replacements. Although I've replaced the kernel and all executable files with 64bit versions the cd is still not booting well. Almost everytime it can't access busybox from the initrd. Searching a resolution takes a lot of time.
For now I have decided to test another way: I will only replace the packages that will be installed. All the rest I will keep. So we will have a 32bit installer cd which installs our 64bit packages. I hope that way will work. And if so it will be much easier to maintain.
I'll try hard to give you as soon as possible an easier way for installation.
Andy
Offline
Would it be easier to start with a net-install cd like frugal only 19mb in size
get that working then its just a case of adding packages to CD
Would save you time uploading etc ,,,,,
Mr Green
Offline
Our install cd is not so hard to understand. The source is available in cvs. So I'd prefer using the ArchLinux install cd. For now the BaseCd should be ok.
But if you can find it show me documentation about Frugals ISOs and show me the location in their "darcs".
Maybe I will look at Mini-Max, the archlinux based slim livecd with the archlinux installer. More options are possible(Archie...).
AndyRTR
Offline