Comp Driv Cria Geren Pac DEB

Embed Size (px)

DESCRIPTION

sobre linux

Citation preview

  • Compilao de Drivers, Compilao de Drivers, Criao e Gerenciamento de Pacotes .debCriao e Gerenciamento de Pacotes .deb

    David Jourdain - [email protected]

  • Contedo da apresentao

    - Oque e para que serve uma Compilao?

    - Pr requisitos para efetuar uma Compilao

    - Oque e para que serve um Pacote .deb?

    - Pr requisitos para criar um Pacote .deb

    - Comandos para gerenciamento de Pacotes .deb

    - Definio de Driver

    - Definio de Firmware

    - Efetuando uma Compilao

    - Criando Pacote .deb

  • O que e para que serve uma Compilao?O que e para que serve uma Compilao?

    Em poucas palavras, compilao o processo de traduo do cdigo fonte de uma linguagem de alto nvel (escrita e entendida por pessoas humanas, no caso, programadores) para uma linguagem binria de baixo nvel (linguagem de mquina). Em uma compilao, a relao dessa traduo mltipla, cada instruo do cdigo fonte vai gerando vrias instrues de mquina.

    Durante a compilao, atravs dos chamados compiladores, o cdigo fonte analisado, ento gerado um cdigo intermedirio.

  • O que e para que serve uma Compilao?O que e para que serve uma Compilao?

    So construdas tabelas de smbolos, alocam-se as reas de memria para variveis e atribui-se os registradores a serem utilizados, e finalmente gerado o cdigo objeto em linguagem binria de mquina.

    Resumidamente uma Compilao serve para traduzir o cdigo fonte para linguagens de mquinas e ento poder fazer um determinado dispositivo funcionar ou executar um determinado aplicativo, lembrando que ambos os exemplos que citei, antes da compilao estavam somente em linguagens de alto nvel.

  • Pr requisitos para uma CompilaoPr requisitos para uma Compilao

    Levando em considerao que efetuaremos o processo de compilao em distribuies linux com base Debian, para efetuar essas compilaes, sejam elas qual for, mas neste caso voltarei mais para as compilaes de drivers e mdulos externos de kernel, que so escritos em C, ser necessrio a instalao de alguns pacotes principais que sero usados durante a compilao. So eles: libncurses5dev,libc6dev,gcc,g++,make,linuxheadersx.x.x.

    Vamos saber um pouco mais de cada um:

  • Pr requisitos para uma CompilaoPr requisitos para uma Compilao

    libncurses5-dev Biblioteca para usar a interface ncurses. Nele contm os

    arquivos de cabealho, bibliotecas estticas e links simblicos que os desenvolvedores usando ncurses iro precisar para compilar algum cdigo fonte.

    Ncurses uma biblioteca que prov uma API para o desenvolvimento de interfaces em modo texto.

    E o qu uma API?

  • Pr requisitos para uma CompilaoPr requisitos para uma Compilao

    API Application Programming Interface (ou Interface de Programao de Aplicativos) um conjunto de rotinas e padres estabelecidos por um software para a utilizao das suas funcionalidades, por aplicativos que no pretendem envolver-se em detalhes da implementao do software, mas apenas usar seus servios.

  • Pr requisitos para uma CompilaoPr requisitos para uma Compilao

    libc6-dev Arquivos de cabealho e auxiliares para se linkar com a

    biblioteca padro c. Alm dos cabealhos e arquivos, nele contm ligaes simblicas, objeto necessrios para compilar e ligar programas que usem a biblioteca C padro.

  • Pr requisitos para uma CompilaoPr requisitos para uma Compilao

    gcc Compilador GNU para C

    Compilador usado na compilao para traduzir uma linguagem de alto nvel para uma linguagem de mquina, baixo nvel.

    g++ Compilador GNU para C++.

  • Pr requisitos para uma CompilaoPr requisitos para uma Compilao

    Make GNU Make, um utilitrio para controlar a compilao, gerao de

    executveis e outros arquivos alvo de um programa a partir dos arquivos de cdigo fonte deste programa. Ele determina automaticamente quais pedaos de um grande programa precisam ser (re)criados e executa os comandos para (re)cri-los. Make no est limitado a programas e executveis, ele pode ser aplicado a qualquer tarefa onde um grande conjunto de arquivos alvo deve ser criado a partir de um conjunto de arquivos de entrada, baseado em dependncias e regras de processamento. Na verdade, Make um resolvedor de dependncias de propsito geral.

  • Pr requisitos para uma CompilaoPr requisitos para uma Compilao

    linux-headers-x.x.x Todos os arquivos de cabealho para a determinada

    kernel linux. Geralmente utilizado para construo e compilao de mdulos que se encontram fora do roteiro da kernel.

  • O que e para que serve um Pacote .debO que e para que serve um Pacote .deb

    Pacote .deb um arquivo compactado cuja extenso .deb, nele pode conter um software, uma biblioteca, um driver, um script, um cdigo fonte, etc. Sua principal vantagem a facilidade de gerenciamento

    que proporciona ao usurio, tanto na instalao, remoo e atualizao, pois o debian possui um sistema de gerenciamento de pacotes muito inteligente, e conta com um forte controle de qualidade para os pacotes que ficam em seus repositrios.

  • O que e para que serve um Pacote .debO que e para que serve um Pacote .deb

    Vale lembrar tambm, que para cada pacote .deb existe uma pessoa responsvel pelas verses, correes e manuteno do mesmo, essas pessoas so chamadas de DDs (Debian Developer's).

  • Pr requisitos para criar um Pacote .debPr requisitos para criar um Pacote .deb

    Para a criao de um Pacote .deb ser necessrio a instalao de alguns utilitrios, que por sinal j esto empacotados e se encontram nos repositrios do debian. Recomendo que tambm seja instalados os pacotes pr requisitados para compilao, porm para criao de um pacote .deb os principais que devem ser instalados so: buildessential,dpkgdev,dhmake,fakeroot.

    Vamos saber mais sobre cada um deles:

  • Pr requisitos para criar um Pacote .debPr requisitos para criar um Pacote .deb

    build-essential Este pacote contm uma lista informativa de pacotes que

    so considerados essenciais ("build-essential") para a construo de pacotes Debian.

    dpkg-dev Este pacote fornece as ferramentas de desenvolvimento

    (incluindo o dpkg-source) necessrias para desempacotar, construir e enviar pacotes fonte Debian.

  • Pr requisitos para criar um Pacote .debPr requisitos para criar um Pacote .deb

    dh-make Depois de alguns processos, o dh-make fornecer um conjunto de

    modelos que, depois de alguma edio pequena, permite que voc pegue um pacote fonte padro e converta-o em um formato que lhe permitir construir pacotes Debian.

    fakeroot Este pacote elimina a necessidade de se tornar root para construir

    um pacote. Isto feito atravs da criao de LD_PRELOAD libfakeroot.so, que fornece invlucros em torno getuid, chown, chmod, mknod, stat, e assim por diante, criando assim um ambiente de raiz falsa.

  • Comandos para gerenciamento de Pacotes .debComandos para gerenciamento de Pacotes .deb

    Quando o Debian foi criado, sentiu-se a necessidade de um sistema de gerenciamento de pacotes instalados no sistema. Deu-se a esse sistema o nome de DPKG. Assim surgiu o famoso pacote.

    Rapidamente outro dilema tomou conta das mentes dos produtores de GNU/Linux. Uma maneira rpida, prtica e eficiente de se instalar pacotes, gerenciando suas dependncias automaticamente e tomando conta de seus arquivos de configurao ao atualizar. Assim, o Debian, novamente pioneiro, criou o APT ou Advanced Packaging Tool.

  • Comandos para gerenciamento de Pacotes .debComandos para gerenciamento de Pacotes .deb

    Vale ressaltar que para gerenciamento de pacotes j instalados no seu S.O Linux, recomendado o uso do DPKG, j para instalao, atualizao, verificao de novas verses de pacotes a partir de repositrios, recomenda-se o uso do gerenciador APT.

    Repositrio um local de armazenamento de onde pacotes de software podem ser recuperados e instalados em um computador.

    Abaixo segue alguns dos comandos mais importantes e mais usados para o APT e tambm para o DPKG:

  • Comandos para gerenciamento de Pacotes .debComandos para gerenciamento de Pacotes .deb

    apt-get update Definio: usado para sincronizar novamente os arquivos de ndice

    de pacotes a partir de suas fontes (repositrios). Os ndices de pacotes disponveis so buscados a partir do local especificado no arquivo /etc/apt/sources.list.

    apt-get upgrade Definio: usado para fazer uma atualizao dos pacotes contidos

    no sistema, ou seja, instalar as verses mais recentes de todos os pacotes das fontes (repositrios) enumerados no /etc/apt/sources.list. Lembre-se que o upgrade s fara uma atualizao dos pacotes j instalados, no instalar nenhum pacote adicional.

  • Comandos para gerenciamento de Pacotes .debComandos para gerenciamento de Pacotes .deb

    apt-get install Definio: usado para instalar um pacote debian a partir de um

    determinado repositrio, caso j contenha esse pacote instalado ele o substitui.

    apt-get remove Definio: idntico ao install, exceto que os pacotes sero

    retirados, em vez de instalados. Voc tambm pode usar o comando um um adicional, o --purge antes do remove, que serve para eliminar juntamente com o pacote, todos os arquivos de configuraes do mesmo. Com o --purge ficaria assim: apt-get --purge remove

  • Comandos para gerenciamento de Pacotes .debComandos para gerenciamento de Pacotes .deb

    apt-get source Definio: Faz com que o apt-get faa uma busca e baixe o

    pacote fonte mais atual. Nas linhas de repositrios do arquivo sources.list, o repositrio dos pacotes fontes se encontram com a sigla src de source no incio da linha.

    apt-get clean Definio: Cada vez que voc instala um pacote debian atravs

    do apt, ele fica guardado em um diretrio cache em seu disco chamado /var/cache/apt/archives, o clean usado para limpar esse cache e liberar espao em disco.

  • Comandos para gerenciamento de Pacotes .debComandos para gerenciamento de Pacotes .deb

    apt-get autoremove Definio: usado para remover os pacotes que foram instalados

    automaticamente para satisfazer as dependncias de alguns pacotes e que no so mais necessrios.

    apt-cache show Definio: Exibe os registros e informaes do pacote, como por

    exemplo sua verso.

    apt-cache search Definio: Realiza uma pesquisa completa em todos os

    repositrios, procurando o nome do pacote e descrio.

  • Comandos para gerenciamento de Pacotes .debComandos para gerenciamento de Pacotes .deb

    dpkg -i Definio: Mesma definio do apt-get install porm o dpkg -i

    utilizado se voc for instalar um pacote que estiver fisicamente em seu computador.

    dpkg -r Definio: Mesma definio do apt-get remove porm tambm

    s para pacotes que se encontram fisicamente em seu computador. Para remover tambm seus arquivos de configurao, basta usar o -P (--purge) e fica assim:

    dpkg -P .

  • Comandos para gerenciamento de Pacotes .debComandos para gerenciamento de Pacotes .deb

    dpkg -l Definio: Comando que mostra o nome, verso e uma breve

    descrio do pacote instalado em seu sistema.

    dpkg -L Definio: Lista o caminho dos arquivos instalados pelo pacote em

    questo, bem como a estrutura do mesmo.

    dpkg S Definio: Atravs de um nome de arquivo especificado, faz uma

    busca em todos os pacotes instalados apontando quis possuem esse determinado arquivo.

  • Definio de DriverDefinio de Driver

    De uma maneira bem fcil, drivers so pequenos programas que fazem a comunicao entre o Sistema Operacional de sua mquina e o Hardware, fazendo com que determinado dispositivo funcione.

  • Definio de FirmwareDefinio de Firmware

    De uma maneira bem simples de entender, firmware o conjunto de instrues operacionais programadas diretamente no hardware de um equipamento eletrnico.

    No h muita diferena entre firmware e software, porm o termo firmware foi criado para contrastar com software, pois o software est envolvido em alto nvel e poderia ser alterado sem ser necessrio a troca de um hardware, j o firmware est envolvido em muito baixo nvel (hardware) e caso esse falte, o determinado dispositivo no ir funcionar.

  • Efetuando uma CompilaoEfetuando uma Compilao

    Compilao o processo de traduo de um cdigo fonte que est escrito em uma linguagem de alto nvel para uma de baixo nvel. Geralmente as compilaes so mais frequentes para drivers e aplicativos, neste caso demonstrarei uma compilao do driver rtl8192se para funcionamento de um modelo de placa wireless realtek no linux. Para isso, primeiramente iremos fazer o download do driver para linux no site da realtek, seguindo este link:http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#RTL8192SE

    Ou outros aqui disponveis, atravs das referncias.

  • Efetuando uma CompilaoEfetuando uma Compilao

    Vamos usar um passo-a-passo para efetuar a compilao, lembrando que voc j deva ter os pr-requisitos para efetuar uma compilao e para criar pacotes debian instalados:

    1) Aps voc efetuar o download do driver, ele ira baixar um arquivo compactado semelhante a este:

    rtl8192se_linux_2.6.0013.1204.2009.tar.gz. Para sua compilao ficar mais organizada, vamos criar uma pasta chamada rtl8192se e mover este arquivo para dentro dela:

    brlix@brlix:~$mkdirrtl8192se

  • Efetuando uma CompilaoEfetuando uma Compilao

    2) Aps criar esse diretrio, mova o arquivo do driver para dentro dele:brlix@brlix:~$mvrtl8192se_linux_2.6.0013.1204.2009.tar.gzrtl8192se

    3) Depois disso entre no diretrio rtl8192se e descompacte o driver, pois o mesmo est compactado em formato tar.gz:brlix@brlix:~$cdrtl8192se

    brlix@brlix:~$tarxzvfrtl8192se_linux_2.6.0013.1204.2009.tar.gz

  • Efetuando uma CompilaoEfetuando uma Compilao

    4) Nota-se que aps descompactar o arquivo, extraiu o seguinte diretrio rtl8192se_linux_2.6.0013.1204.2009. Entre nesse diretrio, dentro dele voc ver diversos arquivos, porm o principal que voc deve olhar antes de iniciar a compilao, o arquivo readme.txt, nele ter informaes teis para voc efetuar todo o processo.

    5) Vamos iniciar o processo de compilao, ento com poderes de root digite:

    brlix:/home/brlix#make

    Caso ocorra tudo bem durante a compilao, vamos para...

  • Efetuando uma CompilaoEfetuando uma Compilao

    ...O prximo passo que o make install, que instalar o driver ou mdulo compilado:

    brlix:/home/brlix#makeinstall

    Voc deve prestar bem ateno no log do make install, pois ali est todo o processo de instalao do driver, oque foi feito, para onde foi jogado o mdulo, e isso essencial voc saber para futuramente criar um pacote .deb desse driver.

    Pronto, caso no ocorreu nenhum erro, o driver est compilado e com seu mdulo para funcionamento desse modelo de placa instalado! Porm vamos ao ltimo passo que o firmware.

  • Efetuando uma CompilaoEfetuando uma Compilao

    6) Se voc olhar novamente no arquivo readme.txt que se encontra no diretrio do cdigo fonte do driver, voc ver que ter que copiar o firmware para seu sistema, seno mesmo compilado o driver, a placa em questo no funcionar, ento vamos l, entre na pasta firmware:

    brlix:/home/brlix#cdfirmware

    brlix:/home/brlix#cpaRTL8192SE/lib/firmware/

    Agora demonstrarei alguns comandos para levantar o mdulo e deixar sua placa em pleno funcionamento:

    brlix:/home/brlix#depmoda (Cujo comando serve para...

  • Efetuando uma CompilaoEfetuando uma Compilao

    ...atualizar a lista dos mdulos reconhecidos pelo kernel).

    brlix:/home/brlix#modprober8192se_pci (Este comando serve para carregar o mdulo que voc acabou de compilar, aps isso se no der nenhum erro, somente voc executar o comando iwconfig e ver que sua placa wireless estar em pleno funcionamento.

    Caso voc deseje desinstalar o driver, basta entrar no diretrio onde se encontra o cdigo fonte e executar:

    brlix:/home/brlix#makeuninstall

    Para recompilar o driver, basta limpar os arquivos da compilao anterior usando o comando:

    brlix:/home/brlix#makeclean

  • Criando Pacote .debCriando Pacote .deb

    Como citado no tpico O que e para que serve um Pacote .deb, ele possui diversas vantagens, dentre ela sua facilidade para gerenciamento, ento em conta disso, vamos criar pacotes debian do driver rtl8192se. Sero criados 3 pacotes debian, um com o driver ou mdulo compilado, outro com o firmware e um terceiro contendo o cdigo fonte do driver. Existem diversas formas de efetuar a criao de um pacote .deb, desde o modo mais simples amador at o modo mais completo profissional qual segue mais a risca as normas e polticas de empacotamento Debian. Aqui voc aprender a criar pacote debian seguindo o mais prximo possvel as polticas do Debian.

  • Criando Pacote .debCriando Pacote .deb

    Estruturalmente, um pacote .deb nada mais que um arquivo compactado, se voc o descompactar com o utilitrio ar (utililtrio que cria, modifica e extrai arquivos) utilizando o comando ar xv ele extrair 3 arquivos, so eles:

    debian-binary Contm apenas a strint 2.0 (verso do formato do pacote debian)

    data.tar.gz - Imagem do pacote instalado no Sistema de Arquivos.

    control.tar.gz Informaes de controle para as ferramentas de manipulao de pacotes.

  • Criando Pacote .debCriando Pacote .deb

    As informaes acima so para um conhecimento geral, porm oque vocs realmente devem saber inicia agora. Irei mostrar um passo-a-passo detalhado com explicao de todo processo de criao e arquivos de um pacote debian do mdulo da placa wireless rtl8192se que foi compilada anteriormente. Prestem muita ateno pois um dos exerccios ser criar um pacote debian para o firmware e outro para o cdigo fonte!

    1) Para dar incio, crie um diretrio qualquer para manter o ambiente mais organizado, neste caso criarei o deb-rtl8192se, aps a criao, entre nele:

  • Criando Pacote .debCriando Pacote .deb

    brlix@brlix:~$mkdirdebrtl8192se

    brlix@brlix:~$cddebrtl8192se

    2) Como a primeira verso que voc est criando deste pacote que contm do mdulo, crie o seguinte diretrio, que tambm ter o nome do pacote:

    brlix@brlix:~$mkdirrtl8192semodules3.16.7

    3) Aps, entre nesse diretrio e crie outros dois diretrios, um chamado data e o outro debian:

  • Criando Pacote .debCriando Pacote .deb

    brlix@brlix:~$cdrtl8192semodules3.16.7

    brlix@brlix:~$mkdirdatadebian

    O diretrio data, responsvel por conter os dados do pacote, bem como sua estrutura, tal qual ser instalada no sistema.

    O diretrio debian, responsvel por conter diversos arquivos importantes, dentre os principais esto o arquivo de controle (control), o script de construo (rules), arquivo responsvel pelas mudanas do pacote (changelog) e a licena do pacote (copyright).

  • Criando Pacote .debCriando Pacote .deb

    4) Primeiramente vamos organizar a estrutura do diretrio data, entre dentro dele e crie o mesmo caminho das pastas e sub-pastas que o make-install mostrou para copiar os arquivos necessrios para o funcionamento do driver que foram gerados durante a compilao, aps tambm copie os arquivos tal qual o make-install copiou.

    brlix@brlix:~$mkdirplib/modules/3.16.7/kernel/extra

    Esse o caminho que o make-install usou, o -p utilizado para criar um diretrio dentro de outro recursivamente, cuide para no por / no incio ao criar os diretrios, pois o / indica que dever ser criado a partir da raiz e...

  • Criando Pacote .debCriando Pacote .deb

    ...na verdade, eles devem ser criados dentro da pasta data.brlix@brlix:~$ cp /lib/modules/3.16.7/kernel/extra/r8192se_pci.kolib/modules/3.16.7/kernel/extra

    Neste comando acima, voc est copiando o mdulo de onde o make-install tinha jogado, que era no /lib/modules do sistema, para o lib/modules que voc criou para fazer o pacote.

    5) Agora vamos criar os arquivos que ficam dentro do diretrio debian, para isso entre dentro desse diretrio:

  • Criando Pacote .debCriando Pacote .deb

    Vamos comear criando o arquivo control, que um arquivo de controle e contm detalhes independentes de verso sobre o pacote fonte e sobre o pacote binrio que cria.

    brlix@brlix~$ touch control (O comando touch serve para criar um arquivo texto vazio).

    brlix@brlix~$vim control (O comando vim um editor de texto modo caracter, utilizando ele vamos criar o contedo do arquivo control, aps criar o contedo salve o arquivo). O contedo do arquivo control dever ficar assim:

  • Criando Pacote .debCriando Pacote .deb

    Source:rtl8192semodules3.16.7

    Section:base

    Priority:extra

    Maintainer:DavidJourdain

    BuildDepends:debhelper(>=5)

    Package:rtl8192semodules3.16.7

    Architecture:i386

    Description:Modulesrtl8192seforkernel3.167

  • Criando Pacote .debCriando Pacote .deb

    Abaixo, temos uma breve explicao de cada parte do arquivo control.

    Source um item obrigatrio e identifica o nome do pacote fonte.

    Section e Priority Alm de obrigatrio, esses dois campos classificam o pacote, onde Section representa uma rea de aplicao em qual o pacote foi classificado e Priority representa quo importante que o usurio o tenha instalado.

    Mantainer Nome do mantenedor e endereo de email.

    Build-Depends Dependncia do pacote fonte, no obrigatrio, porm bom pr.

  • Criando Pacote .debCriando Pacote .deb

    Package Um campo obrigatrio onde contm o nome do pacote binrio.

    Architecture Outro campo obrigatrio, onde vai a string de arquitetura, se i386, all (para todas arquiteturas).

    Description Pequeno resumo ou descrio de o que o pacote e para que serve.

    Alm desses campos, existem mais alguns importantes, dentre eles:

    Depends Campo onde vai o nome de pacotes que este absolutamente depende.

    Recommends Declara uma dependncia forte, mas no absoluta.

  • Criando Pacote .debCriando Pacote .deb

    Suggests Declara que este pacote pode ser mais til com outros pacotes que iro ser listados neste campo.

    Conflicts Declara que este pacote conflita com o pacote que ir neste campo, ento o dpkg s instalar este, se o outro for removido.

    Replaces Sabendo que o dpkg no permite alterar arquivos de outro pacote, ento no deixa que o mesmo seja instalado. Porm se seu pacote precisa alterar arquivos de um pacote chamado fulano basta por o nome deste pacote, ou seja, fulano no campo Replaces que tudo ocorrer bem.

  • Criando Pacote .debCriando Pacote .deb

    6) Ainda dentro do diretrio debian, vamos criar o arquivo rules, que um script de construo, um arquivo Makefile executvel e contm as entradas especificas do programa pra compilar o pacote e construir o(s) pacote(s) binrios do cdigo.

    brlix@brlix~$touchrules

    brlix@brlix~$vimrules

    O contedo do arquivo rules dever ficar tal qual como segue abaixo, e depois ser salvo e receber poderes de execuo:

  • Criando Pacote .debCriando Pacote .deb

    #!/usr/bin/makef

    build:

    clean:

    dh_testdir

    dh_testroot

    Binaryindep:

    dh_clean:

    dh_testdir

    dh_testroot

    dh_installchangelogs

    dh_installdocs

    cpadata/*debian/tmp/

    dh_fixperms

    dh_compress

    dh_installdeb

    #Continue...

    dh_gencontrol:

    dh_md5sums

    dh_builddeb

    binaryarch:

    binary:binaryindepbinaryarch

    .PHONY:binarybinaryarchbinaryindepcleanbuild

  • Criando Pacote .debCriando Pacote .deb

    Para dar poderes de execuo ao arquivo rules execute o seguinte comando:

    brlix@brlix~$chmod+xrules

    7) Outro arquivo importante que dever conter dentro do diretrio debian, o changelog, que um arquivo responsvel por gravar as mudanas especificas feitas no pacote. Ele tem um formato especial que permite s ferramentas de construo de pacote descobrirem qual verso do pacote est sendo construda e descobrir outras informaes especficas de lanamento. Mais ou menos assim:

  • Criando Pacote .debCriando Pacote .deb

    pacote(verso)distribuio(es);urgency=urgncia

    *detalhesdemudanas

    maisdetalhesdemudanas

    *aindamaisdetalhesdemudanas

    nomedomantenedoreendereodeemaildata

    Onde pacote e verso so a fonte do nome do pacote e nmero de verso. Distribuio(es) lista as distribuies nas quais essa verso deve ser instalado quando for...

  • Criando Pacote .debCriando Pacote .deb

    ...enviada. Urgncia o valor do campo Urgency no arquivo. Os detalhes de mudana podem de fato ser uma srie de linhas comeando com pelo menos dois espaos, mas convencionalmente cada mudana comea com um asterisco e um espao separatrio e a continuao das linhas so 'identados' para alinh-las com o incio do texto acima. Linhas em branco podem ser usadas para separar grupos de mudanas, se desejado. O nome e endereo de e-mail do mantenedor no devem necessariamente ser aqueles do mantenedor do pacote usual e sim de quem efetuou a ltima correo ou alterao no pacote. A data deve ser no formato RFC822, deve incluir a zona de tempo especificada numericamente, com o nome dela ou...

  • Criando Pacote .debCriando Pacote .deb

    ...abreviao opcionalmente presente como comentrio. A primeira linha ttulo com o nome do pacote deve comear na margem da esquerda, a linha trailer com os detalhes do mantenedor e da data devem ser precedidos por exatamente um espao. Os detalhes do mantenedor e a data devem ser separadas por, exatamente, dois espaos.

    - Todos os dados explicados acima importante saber, pois qualquer ponto a mais ou vrgula no lugar errado dar erro na hora de construir o pacote, o arquivo changelog do nosso pacote dever ficar como no slide seguinte:

  • Criando Pacote .debCriando Pacote .deb

    rtl8192semodules3.16.7(0.11)unstable;urgency=low

    *Initialrelease

    DavidJourdainFri,13Mar201523:29:220300

  • Criando Pacote .debCriando Pacote .deb

    Para voc pegar o formato correto da data, basta executar o seguinte comando no terminal:

    brlix@brlix~$dateR

    8) O ltimo arquivo que dever conter dentro do diretrio debian, o copyright, ou seja, a licena do pacote debian, neste caso o pacote est sob a licena GNU/GPL ento usarei uma licena padro dos pacotes debian sob essa licena, para isso crie o arquivo copyright, copie o contedo que postarei abaixo para dentro dele e salve-o.

  • Criando Pacote .debCriando Pacote .deb

    brlix@brlix~$touchcopyright

    brlix@brlix~$vimcopyright

    Copie o seguinte contedo para dentro do arquivo copyright:

    License:

    Thisprogramisfreesoftware;youcanredistributeitand/ormodifyitundertheterms of the GNU General Public License as published by the Free SoftwareFoundation;eitherversion2oftheLicense,or(atyouroption)anylaterversion.This program is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR APARTICULARPURPOSE.SeetheGNUGeneralPublicLicenseformoredetails.YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealongwiththisprogram;ifnot, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,Boston, MA 021101301, USA. The full text of the GNU General Public License isavailableonDebian.systemsin/usr/share/commonlicenses/GPL.TheDebianpackagingis(C)2007,andislicensedundertheGPL,see`/usr/share/commonlicenses/GPL'.

  • Criando Pacote .debCriando Pacote .deb

    9) Feito isso, agora vamos sair do diretrio debian e criar nosso pacote:

    brlix@brlix~$cd.. (Esse comando serve para voltar um diretrio atrs)

    Bom, se tudo ocorreu bem voc deve estar no diretrio...

  • Criando Pacote .debCriando Pacote .deb

    rtl8192se-modules-3.16.7-0.1 que voc criou l no incio, e dando um ls dever aparecer apenas os diretrios data e debian. Ento vamos criar nosso pacote:

    brlix@brlix~$ dpkgbuildpackage rfakeroot (dpkg-buildpackage o comando de controle e criao do pacote, -rfakeroot serve para criar o pacote sem privilgios de root).

    Se tudo ocorreu bem, o pacote debian juntamente com os fontes foram criados. Para verificar, volte um diretrio para trs usando o cd.. e de um ls, dever conter o pacote debian com outros 3 arquivos.

  • Criando Pacote .debCriando Pacote .deb

    Os 4 arquivos que o dpkg-buildpackage -rfakeroot criou foram os seguinte:

    rtl8192semodules3.16.7_0.11_i386.deb Pacote debian

    rtl8192semodules3.16.7_0.11_i386.changes Arquivo de controle, que controla a instalao dos arquivos enviados e o banco de dados interno do dpkg.

    rtl8192semodulesrtl8192semodules3.16.7_0.11.dsc_0.11.dsc Arquivo de controle de fonte debian. Contm uma srie de campos, identificados e separados como os campos no arquivo control do pacote binrio.

    rtl8192semodules3.16.7_0.11.tar.gz Arquivo fonte original do pacote debian.

  • Criando Pacote .debCriando Pacote .deb

    Pronto, agora voc se baseando nos Comandos para Gerenciamento de Pacotes .deb mostrado no incio, instale seu pacote e execute alguns comandos de gerenciamento no mesmo.

    Usando os conhecimentos que voc aprendeu, tente criar um pacote debian para o Firmware do driver rtl8192se - E outro com o cdigo fonte do driver, lembrando que o fonte o arquivo tar.gz e no momento que estar criando sua estrutura no diretrio data, dever ser jogado em /usr/src.

  • Referncias- Oque e para que serve uma Compilao?http://wwwusers.rdc.puc-rio.br/rmano/processo.html

    - Pr requisitos para efetuar uma Compilao http://wiki.dcc.ufba.br/bin/view/GAVRI/TutorialCompilacaoKernel#Pacotes_necess_rios_para_compilahttp://packages.debian.orghttp://pt.wikipedia.org/wiki/Ncurseshttp://foldoc.org/Application+Program+Interface

    - Oque e para que serve um Pacote .deb? http://www.slideshare.net/bueroman/empacotamento-debian-bsicohttp://www.debian.org/doc/debian-policy/

    - Pr requisitos para criar um Pacote .debhttp://packages.debian.org

    - Comandos para gerenciamento de Pacotes .deb http://www.debian.org/doc/manuals/apt-howto/ch1.pt-br.htmlhttp://pt.wikipedia.org/wiki/RepositrioManual de comandos linux, atravs do comando man no terminal

  • Referncias- Definio de Driverhttp://pt.wikipedia.org/wiki/Driver_de_dispositivo

    - Definio de Firmwarehttp://pt.wikipedia.org/wiki/Firmware

    - Efetuando uma Compilaohttp://brunotorres.net/compilar-programas

    - Criando Pacote .deb

    http://debian-br.sourceforge.net/docs/sgml/packaging/online/index.html#abstract

    http://www.mentebinaria.com.br/artigos/0x19/0x19-debnaunha.html

    - Outros links de drivers para o Kernel Linux

    http://linuxwireless.org/en/users/Drivers/

    http://elinux.org/Device_drivers

    http://en.wikipedia.org/wiki/Comparison_of_open-source_wireless_drivers

    https://wireless.wiki.kernel.org/en/users/drivers

    http://www.linux-drivers.org/network.html

    Demais referncias: Arquivos PDF disponveis no mini-curso

  • Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60Slide 61