rockwilder

DSM 6 no detecta disco IDE

Recommended Posts

Tengo intalado el DSM 6.0.2 con el bootloader desarrollado por jun y todo funciona perfectamente salvo que no me detecta un disco conectado al puerto ide de la placa.

ubuntu si me detecta el disco asi que supongo que el problema esta en los modulos del kernel. Según veo el modulo que ubuntu carga y hace funcionar el disco ide es el pata_atiixp, que en el dsm no se carga ni puedo cargarlo manualmente con insmod porque no lo encuentra.

Hay alguna forma de cargar ese modulo?

Share this post


Link to post
Share on other sites

He intentado compilar el modulo pero al intentar instalarlo me salta un error. En dmesg dice:

pata_atiixp: Unknown symbol syno_libata_index_get (err 0)

 

Alguien sabe algo sobre el tema?

 

Me da la impresión de que el problema esta en que el driver libata (incluido en el kernel y no compilado como modulo) deberia incluir ese simbolo que no se reconoce y no lo tiene..., pero realmente no tengo ni idea.

Share this post


Link to post
Share on other sites

Al final he conseguido después de mucho pelear instalar el dichoso modulo y que me detecte el disco IDE.

- Intenté compilar el modulo con las fuentes del kernel del Jun's loader pero recibia el error mencionado más arriba (Unknown symbol syno_libata_index_get) al intentar insertarlo.

Esto se debe a que ese núcleo no esta compilado con soporte para PATA y no es suficiente con compilar solo el modulo, sino que hay que compilar todo el núcleo.

 

- Intente pasarme al loader de quicknick (el que incluye un menu de configuración en el boot) que según pone tiene ya incluido soporte pata y concretamente el pata_atiixp. Ahora mismo las descargas estan offline, pero conseguí una copia para probar. En este caso el problema es que no me levanta la red y como no tengo forma de conectar un terminal ttl para ver que pasa, no puedo hacer nada. Lo único que probé fué desempaquetar el drivers.lzma que contiene, cambiar los driver de mi tarjeta por los del que vienen en el de jun (que si levanta red y es el mismo kernel) y volver a empaquetar la imagen..., pero sigue sin levantar la red; el problema debe estar en otro lado.

 

- El puerto pata no era el único problema con el loader de jun. No me reconoce ninguna de mis impresoras, ni la stick dvb y deberia hacerlo porque los drivers están, pero por alguna razón que desconozco (debe estar relacionada con los modulos usb) udev no detecta nada ni intenta cargar nada cuando las conecto.

Asi que buscando alternativas probé con el xpenoboot 5.2-5967.

 

- El xpenoboot 5.2-5967 tiene soporte para algunas controladoras pata pero no para la que necesito. En este caso si me funcionó el compilar el modulo e insertarlo con insmod, dado que en este caso el núcleo si viene con soporte pata de serie. Pero el problema viene a la hora de cargarlo en cada arranque.

No se puede insertar desde el grub que seria lo ideal, pues no está entre los módulos que se incluyen en la imagen del kernel.

Lo de desempaquetar, incluir el modulo y volver a empaquetar en este caso no fui capaz. La imagen del núcleo esta embebida junto con el initrd y no fui capaz de desempaquetarla desde ubuntu.

Incluir la instrucción como script en /usr/syno/etc.defaults/rc.sysv como he leido por ahí, no funciona.

En /etc/rc.local escribiendo la orden directamente "insmod /lib/modules/pata_atiixp.ko" si carga el modulo, pero hay un problema. Debido a la forma singular en la que monta synology los volumenes, el volumen creado en el disco pata desaparece en cada reinicio y te aparece el disco como "sin iniciar". El problema está en que el modulo se carga demasiado tarde en rc.local cuando los scripts de synology encargados de inspeccionar unidades de disco y montar volúmenes ya se han ejecutado.

Después de muchas vueltas para solucionarlo estudiando el orden de inicio de synology he incluido la instrucción en la primera linea del archivo /etc/rc. Esta vez si que carga el modulo y ya no desaparece el volumen. Parece que se ha solucionado, pero no se muy bien porque en cada reinicio me marca un fallo de partición de sistema en el disco conectado al puerto pata, que se repara en unos segundos a traves del gestor de volumenes de synology haciendo click en reparar.

 

Lo suyo seria incluirlo en el pen, pero aún habiendo compilado el núcleo y los modulos sin problemas, no encuentro la forma de montar la imagen del núcleo embebida con los drivers y el initrd tal y como aparece en el xpenoboot 5.2.

Por un lado no se como hacer para generar el initrd haciendo crosscompile pues hasta donde sé, esta se genera al ejecutar "make install" y esto en crosscompile no tiene ningún sentido. Y por último no tengo ni pajolera de montar esa imagen embebida con kernel+drivers+initrd.

 

En resumen:

-Dónde es mejor incluir la orden de carga del modulo para que se cargue antes de los scripts de synology? Está bien en /etc/rc?

-Existe alguna forma de hacer que se carguen desde el pen con el resto de módulos del kernel incluidos en el xpenology sin tener que tocar la imagen del núcleo?

-El fallo que aparece en la partición del sistema en cada reinicio a que puede ser debido y como puedo solucionarlo?

-Como se genera el initrd haciendo crosscompile y esas imágenes de núcleo con "todo incluido" que vienen en xpenology? En el wiki viene la parte de compilar el núcleo, pero no viene referencia alguna a esto que por otro lado es imprescindible para cargar tu nuevo núcleo...

 

Por cierto algo que no viene en el wiki y que veo casi imprescindible para no perderte en el menuconfig para terminar con errores de compilación es extraer el archivo de configuración del núcleo sobre el que quieres trabajar, lo que facilita sobremanera el trabajo. Coges la imagen del núcleo del pen y le pasas un script que viene en las fuentes para extraer ese archivo de configuración y después lo copias como .config. A partir de ahí haces "make oldconfig" "make menuconfig" (para incluir y quitar lo que consideres) y por último "make modules" y "make bzImage". Antes editar el Makefile y cambiar las variables ARCH y CROSS_COMPILE:

ARCH=x86_64
CROSS_COMPILE=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- 

*Cambiar /usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- por la ruta dónde hayáis extraído el toolchain si no lo habéis hecho en /usr/local

 

Desde el directorio donde has extraído las fuentes del kernel:

scripts/extract-ikconfig "ruta_a_la_imagen_del_núcleo_del_pen" | less > kernelconfig

cp kernelconfig .config

make oldconfig

make menuconfig

make modules

make bzImage

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now