Eae Pessoal , nesta semana um colega meu administrador de redes que tem um servidor FreeBSD precisou utilizar no servidor dele um HD Externo através de uma porta usb, até aí tudo bem. Mais o HD Externo quando plugado no servidor não estava identificando o dispositivo. Utilizando o comando "tail -f /var/log/messages" monitoramos a entrada de dispositivos nas portas usb e nada. Então fui olhar o log do boot do sistema , para verificar se ele estava carregando o driver para dispositivos usb , com o comando "dmesg -b" , o driver usb não estava carregando no Boot do sistema. Por ultimo olhamos as configurações do kernel corrente utilizado pelo sistema em /usr/src/sys/i386/conf/Seu-Kernel , verificamos que o kernel foi compilado desabilitando o suporte a usb.
Então para resolver isso temos duas formas , uma manual e outra automática , forçando o sistema carregar o driver usb no boot do sistema.
1. Habilitando suporte usb no FreeBSD de forma manual.
Para carregar drivers na memoria, digite o comando abaixo:
#kldload usb uhci ohci ehci udbp uhid umass
Depois de executar o comando acima , digite o seguinte comando para confirmar se os drivers foram carregados:
# kldstat
Pronto agora seu servidor FreeBSD irá identificar dispositivos de armazenamento usb. Na figura abaixo estou mostrando o debug do kernel do sistema, verificando ser o drivers foram carregados corretamente e se o sistema realmente identificou meu pendrive usb.
Bom por padrão a primeira unidade de armazenamento no FreeBSD , recebe o nome de device /dev/da0 e se utilizar mais outro dispositivo seguirá na sequencia /dev/da1 , /dev/da2 e assim suscetivamente.
2. Habilitando suporte a usb no FreeBSD de forma automática.
Edite o arquivo /boot/loader.conf, com o comando:
# ee /boot/loader.conf
O arquivo /boot/loader.conf deverá estar vazio , nisso agora precisamos preenche-ló com as linhas abaixo para habilitar o suporte a usb no boot do sistema:
usb_load="YES"
uhci_load="YES"
ohci_load="YES"
ehci_load="YES"
udbp_load="YES"
uhid_load="YES"
umass_load="YES"
Salve o arquivo e de um reboot no seu FreeBSD com "shutdown -r now".
Depois que o sistema iniciar verifique se os drivers foram carregados corretamente:
Pronto agora seu FreeBSD irá identificar dispositivos usb sem a necessidade de recompilar o kernel do sistema.
Para formatar seu pendrive usb ou hd externo , digite o comando abaixo:
#newfs -O 2 /dev/da0
Crie uma pasta que será o ponto de montagem do seu dispositivo usb depois de formatado, no caso criei uma pasta na raiz do sistema chamada /dados.
# mkdir dados
Para montar seu dispositivo manualmente, digite os comandos abaixo:
#mount /dev/da0 /dados
Para desmontar seu dispositivo, digite o comando abaixo:
#umount -f /dados
Bom agora para facilitar nossa vida , vamos automatizar a montagem deste dispositivo.
# configuração do fstab para montar pendrive ou hd externo em /etc/fstab:
# ee fstab
/dev/da0 /dados ufs rw,noauto 0 0
# comando para montar pendrive ou hd externo
# mount -a /dados
# comando para desmontar pendrive ou hd externo
# umount -f /dados
Exemplo de fstab para linux com partições em UFS , utilizando um HD Externo ou Pendrive:
/dev/hda4 /mnt/bsd ufs auto,ro,ufstype=ufs2,nodev,nosuid 0 0
Bom espero ter ajudado e compartilhado conhecimento. Qualquer dúvida na implementação das configurações deixe um comentário no post para poder ajudar. Que a Graça e Paz estejam com Vocês.