LINUX.ORG.RU

Проблема компиляции ядра


0

1

в ядре, выложенном длинком какая-то ерунда с компиляцией:

$ make uImage
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CHK     include/linux/compile.h
  MODPOST vmlinux
mipsel-linux-objcopy -O binary --remove-section=.reginfo --remove-section=.mdebug --remove-section=.comment --remove-section=.note --remove-section=.pdr --remove-section=.options --remove-section=.MIPS.options vmlinux arch/mips/boot/vmlinux.bin
e arch/mips/boot/vmlinux.bin arch/mips/boot/vmlinux.lzma
make[1]: e: Command not found
make[1]: *** [vmlinux.lzma] Error 127
make: *** [uImage] Error 2

Разобрался, что не хватает lzma к конфиге, но что такое «e», неясно

★★★★★

Ответ на: комментарий от Deneb

Это весь лог после выполнения make

Прописал LZMA=lzma

$ make uImage
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CHK     include/linux/compile.h
  MODPOST vmlinux
mipsel-linux-objcopy -O binary --remove-section=.reginfo --remove-section=.mdebug --remove-section=.comment --remove-section=.note --remove-section=.pdr --remove-section=.options --remove-section=.MIPS.options vmlinux arch/mips/boot/vmlinux.bin
lzma e arch/mips/boot/vmlinux.bin  arch/mips/boot/vmlinux.lzma
lzma: e: doesn't exist or is not a regular file
arch/mips/boot/vmlinux.lzma already has .lzma suffix -- unchanged
make[1]: *** [vmlinux.lzma] Error 2
make: *** [uImage] Error 2

Вот кусок Makefile

vmlinux.bin: $(VMLINUX)
        $(OBJCOPY) -O binary $(strip-flags) $(VMLINUX) $(obj)/vmlinux.bin
vmlinux.lzma:vmlinux.bin
        $(LZMA) e $(obj)/vmlinux.bin  $(obj)/vmlinux.lzma
uImage: vmlinux.lzma
        $(MKIMAGE) -A mips -O linux -T kernel -C lzma -a 0x${LDADDR} \
        -e ${ENTRY} -n ${PROFILE}    \
        -d $(obj)/vmlinux.lzma $(obj)/uImage
cvs-255 ★★★★★ ()
Ответ на: комментарий от kostik87

пробовал:

$ make uImage
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CHK     include/linux/compile.h
  MODPOST vmlinux
mipsel-linux-objcopy -O binary --remove-section=.reginfo --remove-section=.mdebug --remove-section=.comment --remove-section=.note --remove-section=.pdr --remove-section=.options --remove-section=.MIPS.options vmlinux arch/mips/boot/vmlinux.bin
lzma -e arch/mips/boot/vmlinux.bin  arch/mips/boot/vmlinux.lzma
lzma: invalid option -- 'e'
make[1]: *** [vmlinux.lzma] Error 1
make: *** [uImage] Error 2
$ lzma -V
LZMA command line tool 9.22
LZMA SDK 9.22
cvs-255 ★★★★★ ()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от cvs-255
lzma --help | grep extreme
  -e, --extreme       возможность увеличения сжатия за счёт использования длительного процессорного времени;

lzma -V
xz (XZ Utils) 5.1.0alpha
liblzma 5.1.0alpha

Аноним намекает что у тебя lzma не поддерживает extreme сжатие (или читай хелп своего lzma).

сделал так, не может распаковать

Что значит не может распаковать? Тебе нужно сжать ядро.

bhfq ★★★★★ ()
Последнее исправление: bhfq (всего исправлений: 1)
Ответ на: комментарий от post-factum
vmlinux.bin: $(VMLINUX)
        $(OBJCOPY) -O binary $(strip-flags) $(VMLINUX) $(obj)/vmlinux.bin
vmlinux.lzma:vmlinux.bin
        $(LZMA) -e $(obj)/vmlinux.bin
        mv $(obj)/vmlinux.bin.lzma $(obj)/vmlinux.lzma
uImage: vmlinux.lzma
        $(MKIMAGE) -A mips -O linux -T kernel -C lzma -a 0x${LDADDR} -e ${ENTRY} -n ${PROFILE} -d $(obj)/vmlinux.lzma $(obj)/uImage
RT3352 # tftpboot 0x80800000 uImage

 netboot_common, argc= 3 

 KSEG1ADDR(NetTxPacket) = 0xA1FE4800 

 NetLoop,call eth_halt ! 

 NetLoop,call eth_init ! 
Trying Eth0 (10/100-M)

 ETH_STATE_ACTIVE!! 
Using Eth0 (10/100-M) device
TFTP from server 10.10.10.3; our IP address is 10.10.10.123
Filename 'uImage'.

 TIMEOUT_COUNT=10,Load address: 0x80800000
Loading: Got ARP REPLY, set server/gtwy eth addr (00:1b:fc:32:3e:3d)
Got it
#################################################################
         #################################################################
         #################################################################
         ###########
done
Bytes transferred = 1053762 (101442 hex)
NetBootFileXferSize= 00101442
RT3352 # bootm 0x80800000
## Booting image at 80800000 ...
   Image Name:   rt3352
   Created:      2013-03-29  22:49:16 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1053698 Bytes =  1 MB
   Load Address: 80000000
   Entry Point:  802f8000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... LZMA ERROR 1 - must RESET board to recover

Пробовал различное сжатие в lzma, одно и то же

cvs-255 ★★★★★ ()
Ответ на: комментарий от cvs-255

Поправил Makefile, теперь не сжимает и ядро грузится. И даже подхватило корень

cvs-255 ★★★★★ ()
Последнее исправление: cvs-255 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.