代码之家  ›  专栏  ›  技术社区  ›  rahul

声音驱动程序-AWS EC2 ubuntu 16.04实例的snd aloop内核模块安装问题

  •  5
  • rahul  · 技术社区  · 6 年前

    无法在AWS EC2 ubuntu 16.04实例中使用snd aloop音频驱动程序

    $modprobe snd-aloop
    modprobe: FATAL: Module snd-aloop not found in directory /lib/modules/4.4.0-1052-aws
    

    AWS matchine中的内核是-

    /lib/modules/4.4.0-1049-aws  
    /lib/modules/4.4.0-1052-aws  
    /lib/modules/4.4.0-116-generic
    

    当前加载的内核

    $uname -r
    4.4.0-1052-aws
    
    1. 在进行了大量搜索后,确认了ubuntu 16.04中预装了snd aloop。( https://askubuntu.com/questions/891445/alsa-snd-aloop-kernel-module-for-16-04-or-14-04-server )
    2. 因此,我验证并发现模块存在于

    “/lib/modules/4.4.0-116-generic”内核。位置-/lib/modules/4.4.0-116-generic/kernel/sound/drivers/snd-aloop。击倒取胜

    1. 经过深思熟虑,使用snd aloop音频驱动程序的一种可能方法是 使用4.4.0.116-generic内核。
      • 所以我也修改了 /启动/grub/菜单。lst公司 并编辑了 内核 列表 。(注释掉除4.4.0.116-通用之外的所有其他内核) 然后更新了grub,但什么都没发生,加载的内核 /库/模块/4.4.0-1052-aws。
      • 然后我修改了 /etc/default/grub文件 和 已更改 GRUB\U默认值=0 至内核标题为 GRUB\u DEFAULT=“gnulinux-4.4.0-116-generic-advanced-b6adc449-5e3d-4331-ba6b-6e99a75fa48e>gnulinux-4.4.0-116-generic-recovery-b6adc449-5e3d-4331-ba6b-6e99a75fa48e” 然后又做了一次grub更新,但还是什么都没发生。

    我已经看过以下医生了

    1. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html -Aws文档更改内核指南。

    我记不起其他链接,但我已经搜索了很多。

    请给我指出正确的方向。如何在AWS EC2 Ubuntu 16.04实例中使用音频驱动程序sdn aloop?

    3 回复  |  直到 6 年前
        1
  •  14
  •   websquared    6 年前

    更新默认内核引导项的步骤(不修改 /启动/grub/菜单。lst公司 ):

    1. 在中查找所需的菜单和子菜单项 : cat /boot/grub/grub.cfg

      例如,您可以有这样的菜单结构(默认为 AWS Ubuntu 16.04 ):

      • (0)Ubuntu
      • (1) Ubuntu的高级选项
        • (0)Ubuntu,Linux 4.4.0-1052-aws
        • (1) Ubuntu,Linux 4.4.0-1052-aws(恢复模式)
        • (2) Ubuntu,Linux 4.4.0-116-generic
        • (3) Ubuntu,Linux 4.4.0-116-generic(恢复模式)

      在这种情况下,如果需要加载“Ubuntu,with Linux 4.4.0-116-generic”,则默认引导设置为“1>2”

    2. 编辑默认grub文件:

      vim /etc/default/grub 和设置

      GRUB_DEFAULT=“1>2”

    3. update-grub

    4. 然后 reboot now 使其生效
    5. uname -a 应该给 4.4.0-116-通用

    在此之后 modprobe snd-aloop

        2
  •  4
  •   Kavirajan ST    4 年前

    关于AWS的Jibri,并获得以下问题。

    组织。jitsi。jibri。俘虏ffmpeg。FfmpegCapturer。onFfmpegProcessUpdate()Ffmpeg突然退出。最后一行输出:插头:bsnoop:输入/输出错误

    解决方案: 将内核引导设置从Linux 4.4.0-xxxx-aws更改并更新为Linux 4.4.0-xxxx-generic,然后重新启动实例。

    我已通过以下步骤进行修复:

    $grep-200子菜单/启动/grub/grub。cfg | grep菜单

    输出:

    submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
        menuentry 'Ubuntu, with Linux 4.4.0-1107-aws' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-1107-aws-advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
        menuentry 'Ubuntu, with Linux 4.4.0-1107-aws (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-1107-aws-recovery-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
        menuentry 'Ubuntu, with Linux 4.4.0-1106-aws' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-1106-aws-advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
        menuentry 'Ubuntu, with Linux 4.4.0-1106-aws (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-1106-aws-recovery-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
        menuentry 'Ubuntu, with Linux 4.4.0-1105-aws' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-1105-aws-advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
        menuentry 'Ubuntu, with Linux 4.4.0-1105-aws (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-1105-aws-recovery-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
        menuentry 'Ubuntu, with Linux 4.4.0-179-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-179-generic-advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
        menuentry 'Ubuntu, with Linux 4.4.0-179-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-179-generic-recovery-e6dc6474-8016-46c6-8ab0-0a871bae4cd1' {
    
    

    Ubuntu高级选项的菜单项id是gnulinux-Advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1 使用Linux 4.4.0-179-generic的Ubuntu菜单项为gnulinux-4.4.0-179-generic-advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1

    编辑Grub 并用上述值替换GRUB\U DEFAULT

    $nano/etc/default/grub

    GRUB_DEFAULT="gnulinux-advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1>gnulinux-4.4.0-179-generic-advanced-e6dc6474-8016-46c6-8ab0-0a871bae4cd1"
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=0
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0"
    GRUB_CMDLINE_LINUX=""
    
    

    更新并重新启动

    $sudo更新grub $sudo重新启动

    重新启动后,您可以使用uname-a对其进行测试,其中应给出4.4.0-179-generic

    $uname-a

    Linux 4.4.0-179-通用

    在此之后,modprobe和aloop应该可以正常工作。

        3
  •  0
  •   Sahil Jain    4 年前

    我是怎么做到的

    grep-A100 submenu /boot/grub/grub.cfg |grep menuentry

    下面列出如下内容

    submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-6156ec80-9446-4eb1-95e0-9ae6b7a46187' { menuentry 'Ubuntu, with Linux 5.3.0-1017-aws' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.0-1017-aws-advanced-6156ec80-9446-4eb1-95e0-9ae6b7a46187' { menuentry 'Ubuntu, with Linux 5.3.0-1017-aws (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.0-1017-aws-recovery-6156ec80-9446-4eb1-95e0-9ae6b7a46187' { menuentry 'Ubuntu, with Linux 4.15.0-1065-aws' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-1065-aws-advanced-6156ec80-9446-4eb1-95e0-9ae6b7a46187' { menuentry 'Ubuntu, with Linux 4.15.0-1065-aws (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-1065-aws-recovery-6156ec80-9446-4eb1-95e0-9ae6b7a46187' { menuentry 'Ubuntu, with Linux 4.15.0-99-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-99-generic-advanced-6156ec80-9446-4eb1-95e0-9ae6b7a46187' { menuentry 'Ubuntu, with Linux 4.15.0-99-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-99-generic-recovery-6156ec80-9446-4eb1-95e0-9ae6b7a46187' {

    因此选择了第一个MenuteryID,即gnulinux-advanced-6156ec80-9446-4eb1-95e0-9ae6b7a46187和通用id gnulinux-4.15.0-99-generic-advanced-6156ec80-9446-4eb1-95e0-9ae6b7a46187

    然后使用>看起来像这样

    gnulinux-4.15.0-99-generic-recovery-6156ec80-9446-4eb1-95e0-9ae6b7a46187>gnulinux-4.15.0-99-generic-advanced-6156ec80-9446-4eb1-95e0-9ae6b7a46187

    并如上所述将其设置为GRUB\U默认值,然后更新GRUB并重新启动。您应该得到所需的输出。