By compiling linux kernel are we building a totally standalone OS which doesn't depend on any linux destributions?
Não. O Linux por si só não é um sistema operacional. É apenas um kernel. Uma userland , compreendendo uma coleção de bibliotecas de sistema e software básico, é necessária para facilitar sua interação com o computador. No que comumente nos referimos quando nos referimos ao "Linux", isso é fornecido por um projeto separado chamado Projeto GNU. Tecnicamente, deveríamos (e alguns o chamamos) "GNU / Linux".
Well when I want to create the initrd file using initramfs commmand why is it adding some info about my running linux destrubution ( I'm running Ubuntu 10.4) ?
Como seu initrd contém a coleção de programas que inicialmente configuram seu sistema na inicialização, carrega os drivers e daemons necessários, localiza e monta a (s) partição (ões) exigida (s) em seu (s) disco (s) rígido (s), etc. somente para sua distribuição, mas para sua instalação, configuração e computador específicos. Não é geralmente intercambiável com o initrd de outra pessoa. É por isso que tem que ser gerado pelo seu sistema.
How should I compile and add modules to my compiled linux and where should I put them?
Se você está compilando seu próprio kernel, presumivelmente você está fazendo make menuconfig
no diretório fonte do kernel antes de compilar, o que permite selecionar quais recursos serão compilados, e se eles serão integrados no binário do kernel ou feitos disponível como módulos.
This is a summery of what I've been doing:
Existem vários motivos pelos quais isso não funcionará do jeito que você deseja.
getting the kernel source (3.4.1) and compiling it using "make all" command ( I use my current linux .config )
Se você estiver executando o Ubuntu 10.04, que antecede um pouco a ramificação 3.x do kernel Linux, muito menos 3.4. Provavelmente não funcionará corretamente, pelo menos não sem uma enorme quantidade de trabalho extra. Os arquivos de configuração também mudaram um pouco, e estou francamente surpreso que ele não esteja jogando fora os erros de esquerda e direita sobre as coisas no seu (supostamente para o Linux 2.6) arquivo de configuração não correspondendo com como as coisas são feitas no 3.4. Além disso, você provavelmente quer estar baixando o pacote fonte do kernel do Ubuntu e não o kernel do kernel kernel, já que o Ubuntu corrige o kernel para incluir os recursos necessários e torná-lo compatível com tudo o mais no sistema. Finalmente, você está perdendo uma série de etapas, para as quais eu irei depois.
Putting the compiled bzImage to the /boot directory of my memory stick
Eu não tenho certeza qual é a sua intenção com isso, mas se é para ter uma instalação Linux inicializável completa no seu memory stick, há um pouco mais do que isso - você não tem nenhuma coisa de usuário final nesse memory stick, por exemplo. O que isso realmente fará, se configurado corretamente, é (tente) executar a instalação do Ubuntu no seu disco rígido com o kernel no seu memory stick. Eu acredito que isso deve funcionar, mas por que fazer isso em vez de simplesmente instalar o kernel no seu disco rígido? Você pode instalá-lo lado a lado com o existente para alternar livremente entre eles.
Getting into (initramfs) terminal after an error stating that could not find the "/lib/modules/3.4.1/modules.dep" file !!!
Isso remonta aos passos perdidos que mencionei anteriormente. Você precisa make modules_install
do seu novo kernel para colocar seus módulos em /lib/modules
.
CONTUDO ...
Nada disso importa, porque idealmente você não deve compilar um kernel de maneira "tradicional", a menos que você tenha uma necessidade muito específica. Hoje em dia, caso você realmente precise compilar seu próprio kernel, a maioria das distribuições tem uma maneira de fazer isso que usa sua versão de kernel personalizada (se aplicável), automatiza o processo de compilação, instala o kernel como um pacote para que você possa instalar e remover conforme necessário, e configura o seu gerenciador de inicialização para lhe dar uma escolha do (s) kernel (s) novo (s) ou antigo (s). No Ubuntu, você deve seguir estas instruções: Kernel / Compile - Ubuntu Wiki
O que não quer dizer que você não pode compilar um kernel da maneira "antiga" apenas para pontapés / para propósitos educacionais - eu compilei meu primeiro kernel dessa forma, mas isso foi antes que houvesse maneiras melhores de fazer isso . Se o seu sistema não estiver quebrado, é importante para você, use o método recomendado para sua distro, use sua origem e use o gerenciamento de pacotes.