View previous topic :: View next topic |
Author |
Message |
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Sun Apr 29, 2007 10:38 am Post subject: Intel 82801FB Soundcard on gentoo[solved] |
|
|
i went here
http://gentoo-wiki.com/HARDWARE_Gentoo_on_Fujitsu-Siemens_Amilo_Pro_V3205
to find out how to get the alsa drivers to work
this particular article said to leave out the advanced sound support in the kernel menuconfig
and emerge alsa-driver and alsa-utils
when doing /etc/init.d/alsasound restart
it gives me a bunch of errors saying unknown symbol in module or unknown parameter
i found some site where it told me to add CONFIG_SND_HDA_INTEL=y to the .config of the kernel menuconfig so i did that
last time it turned out to be a one liner added to the .config for the kernel menuconfig(for the graphics driver)
i did alsaconf and selected the 82801FB i put ALSA_DRIVERS="hda_intel" in my /etc/make.conf
heres what it comes down to
modprobe snd_hda_intel this is where the unknown parameter errors are coming from
Last edited by rixanon on Tue May 01, 2007 9:02 am; edited 1 time in total |
|
Back to top |
|
|
mirojira l33t
Joined: 18 Feb 2006 Posts: 685
|
Posted: Sun Apr 29, 2007 11:03 am Post subject: |
|
|
It looks like you have installed both alsa-driver and alsa in kernel. You should read http://www.gentoo.org/doc/en/alsa-guide.xml where is explained how to install alsa correctly and in the chapter Issues? is described "Unknown symbol in module" error with solution. |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Sun Apr 29, 2007 10:08 pm Post subject: Argh! |
|
|
dude i went to that site and it didn't help. it doesn't have anything on troubleshooting modprobe problems. i know where the problem is right now its modprobe snd_hda_intel.
while modprobing a module that has the wrong name like snd_intel or hda_intel it gives me a error module not found
this error is different
WARNING: Error inserting snd/timer and snd_pcm and snd_hda_codec and snd_hda_intel (/lib/modules/2.6.20-gentoo-r6/kernel/sound/core/snd-timer.ko): Unknown symbol in module, or unknown parameter (see dmesg)
that must mean that the module is there
i cant find any decent documentation on resolving this problem
some linux on laptops sites say to rm -rf /lib/modules/2.6.20-gentoo-r6/alsa-driver then to re emerge alsa-driver i did that
i found out i had * selected in the kernel menuconfig for option: <*> Sound Card Support
right now i compiled the kernel without the * and next i will do M
no that didn't work
the sound card drivers supported in the kernel have the same error msg as if i left em out in the kernel and used alsa-driver
it'll never emerge alsa-driver if you have any options under sound in the kernel selected.
does it matter that i can do /etc/init.d/alsasound restart even when alsa-driver is unmerged?
i went here
http://www.gentoo.org/doc/en/alsa-guide.xml
and it said you get this problem when you switch from alsa-driver to the kernel supported sound modules
but thats the exact opposite of what i'm doing i'm switching from the kernel module to the alsa-driver
i rm -rf'd /lib/modules/2.6.20-gentoo-r6/alsa-driver
and its not a device_mode option in dmesg.
im fkn stumped. plz get back to me |
|
Back to top |
|
|
pigeon768 l33t
Joined: 02 Jan 2006 Posts: 683
|
Posted: Mon Apr 30, 2007 12:03 am Post subject: Re: Argh! |
|
|
rixanon wrote: | dude i went to that site and it didn't help. it doesn't have anything on troubleshooting modprobe problems. i know where the problem is right now its modprobe snd_hda_intel.
while modprobing a module that has the wrong name like snd_intel or hda_intel it gives me a error module not found
this error is different
WARNING: Error inserting snd/timer and snd_pcm and snd_hda_codec and snd_hda_intel (/lib/modules/2.6.20-gentoo-r6/kernel/sound/core/snd-timer.ko): Unknown symbol in module, or unknown parameter (see dmesg) | If you went to that site, you'd have read the "The other most common issue users face is the dreaded "Unknown symbol in module" error. An example of the same is shown below." section.
It's caused by having a mix of alsa-drivers modules and in-kernel modules. Remove the whole /lib/modules/<kernel version> directory, 'make modules_install' in /usr/src/linux, remerge nvidia-drivers, madwifi-ng, etc. |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 1:46 am Post subject: ok im getting somewhere |
|
|
i went to a site where it said to rm -rf the whole /lib/modules/2.6.20-gentoo-r6 directory and then do make modules_install in /usr/src/linux
now alsa starts up
but alsamixer gives me an error
alsamixer:function snd_ctl_open failed for default: no such devce
and when i boot into kde i do settings sound it gives me
Unable to start the sound server to retrieve possible sound i/O methods.
Only automatic detection will be available
i think it has something to do with alsamixer not running
i went here
http://www.gentoo.org/doc/en/alsa-guide.xml
--"this is usually an issue with udev setting up the devices. Run killall udevd; udevstart to reload /dev entries and fire up alsamixer."
-- "It should solve the issue."
Yeah well it doesn't and im scrambling to find good documentation on troubleshooting alsamixer
i removed udev during the gentoo installation and installed devfsd like it said to |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 7:27 am Post subject: more information |
|
|
i googled "gentoo alsamixer snd_ctl_open"
because alsamixer says snd_ctl_open failed for default: No such device
http://www.gentoo.org/doc/en/alsa-guide.xml
it led me back here and i realized that this pretty general information was better than all articles on problems like this
every article i've seen on the intel 82801FB sucks.
/etc/init.d/alsasound restart
it unloads and loads ok but it gives me
No mixer config in /var/lib/alsa/asound.state, you have to unmute you('re speakers) [ok]
i googled the crap out of "asound.state gentoo intel 82801FB alsa alsamixer"
finding things in english is a bastard
ok so some guy has a similar problem with the same hardware but he had asound.state in /etc
i did a search for asound.state and just asound and didn't find anything, even after i ran alsaconf, not like i had it in the first place
does it matter that i've left the modules out in the kernel
it says to support sound in make menuconfig but leave out the other two options (advanced sound and whatever else)
i went ahead and compiled another kernel with just intel hd audio support and emerged alsa-driver and it gives me
alsa is already compiled into the kernel. (this slap in the face i had expected)
coincidentally it gives me the same error when starting or restarting alsasound about the asound.state and it gives me the same
problems in kde and the same problems with alsamixer |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 4:49 pm Post subject: |
|
|
what do you get on alsamixer? can you take a snapshot of it? _________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 9:09 pm Post subject: it just gives me an error |
|
|
alsamixer: function snd_ctl_open failed for default: No such device
i downloaded someone elses asound.state and put it in /var/lib/alsa/
/etc/init.d/alsasound restart gives me
before unloading alsa modules it says
alsa lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: no such file or directory
cant open sequencer
and while restoring mixer levels it says
alsactl: load_state:1340: cannot find soundcard '0'...
Errors while restoring dfaults, ignoring |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 9:18 pm Post subject: |
|
|
Did you emerge alsa or did you installing by source? The reason I asked is because I have gotten this error many times, what I do is 1: reinstall, 2: downgrade deppending on what you have done. also what does alsaconfig gives you? even though I have still gotten this error by running alsaconfig.. but sometimes it does fix it. Again I dont know at what level your on. _________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 9:39 pm Post subject: downgrade?! |
|
|
i emerged alsa-driver leaving it out of the kernel. what do you mean downgrade? lesser version, lesser support. alsaconf works it detects hda-intel but it runs into the same problem when it runs the init script. not finding asound.state or finding it and not finding soundcard '0'. i deleted asound.state thinking it would be generated when i ran alsaconf but it didn't. i downloaded it from somebodys site. somebody with a 82801FB and it still didn't work. i cant count the times i emerge --unmerge alsa-driver, rm -rf /lib/modules/2.6.20-gentoo-r6 and make modules_install in /usr/src/linux, compiled the kernel, rebooted, modules-update -f, emerge alsa-driver, and messed around with the asound.state. and just tried those things in a different order. |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 9:43 pm Post subject: |
|
|
emerge -C alsa* (all alsa packges) and try it again.. emerge it this way
step by step
1: media-sound/alsa-driver
2: media-libs/alsa-lib
3: media-sound/alsa-utils
see if that does the trick. then run alsaconfig _________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 9:59 pm Post subject: nope |
|
|
i did that with USE=hda-intel" emerge alsa-driver alsa-lib alsa-utils and it included gentoo sources in the emerge list
before that i had rm -rf /lib/modules/2.6.20-gentoo-r6 and make modules_install in /usr/src/linux
after i emerged the packages i modules-update -f and ran alsaconf
still getting the same errors |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 10:30 pm Post subject: |
|
|
dont USE=hda-intel, I have the same drivers. _________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 10:59 pm Post subject: nope |
|
|
i unmerged alsa* and emerge alsa-driver alsa-lib alsa-utils
took out the asound.state in /var/lib/alsa and ran alsaconf before and after running modules-update -f
i tried it with and without rebooting. making sure to every time rm -rf /lib/modules/2.6.20-gentoo-r6 and make modules_install in /usr/src/linux |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 11:10 pm Post subject: |
|
|
And the error you get is snd_seq_hw_open correct? lsmod see what you get..post it here. _________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 11:16 pm Post subject: lsmod output |
|
|
Code: |
Module Size Used by
snd_seq 32336 0
snd_seq_device 4684 1 snd_seq
snd_hda_intel 13752 0
snd_hda_codec 150304 1 snd_hda_intel
snd_pcm 47844 2 snd_hda_intel,snd_hda_codec
snd_timer 14052 2 snd_seq,snd_pcm
snd 27256 6 snd_seq,snd_seq_device,snd_hda_intel,snd_hda_codec,snd_pcm,snd_timer
snd_page_alloc 6088 2 snd_hda_intel,snd_pcm
soundcore 3840 1 snd
rtc 8848 0
tg3 88196 0
e1000 91744 0
nfs 89884 0
lockd 44232 1 nfs
sunrpc 105820 2 nfs,lockd
jfs 143628 0
raid10 18592 0
raid1 18112 0
raid0 6368 0
dm_mirror 14964 0
dm_mod 36716 1 dm_mirror
sbp2 16260 0
ohci1394 27056 0
ieee1394 57240 2 sbp2,ohci1394
sl811_hcd 8960 0
usbhid 17984 0
ohci_hcd 15044 0
uhci_hcd 17132 0
usb_storage 57760 0
ehci_hcd 22092 0
usbcore 84232 7 sl811_hcd,usbhid,ohci_hcd,uhci_hcd,usb_storage,ehci_hcd |
|
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 11:26 pm Post subject: |
|
|
see if you can load snd_seq_oss (modprobe snd_seq_oss) then try _________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 11:37 pm Post subject: nope again |
|
|
modprobe snd_seq_oss
FATAL: Module snd_seq_oss not found
i might be wrong in saying this but alsa and oss are two different things right?
its gotta be the asound.state do you know how to set up a asound.state from scratch or the procedure to make one
cuz i cant find a howto anywhere. its been about 6 days since i started and even though i've achieved my goal
of having at least a server ready gentoo machine and then a working kde gentoo machine, i haven't achieved
a fully functional gentoo installation. |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 11:41 pm Post subject: Re: nope again |
|
|
rixanon wrote: | modprobe snd_seq_oss
FATAL: Module snd_seq_oss not found
i might be wrong in saying this but alsa and oss are two different things right?
its gotta be the asound.state do you know how to set up a asound.state from scratch or the procedure to make one
cuz i cant find a howto anywhere. its been about 6 days since i started and even though i've achieved my goal
of having at least a server ready gentoo machine and then a working kde gentoo machine, i haven't achieved
a fully functional gentoo installation. | that really should not matter.. also it is two different things but it seems like if your installation is looking for it.. see if my config works for you..
Code: |
state.Intel {
control.1 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'PCM Playback Volume'
value.0 31
value.1 31
}
control.2 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'PCM Playback Switch'
value.0 true
value.1 true
}
control.3 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'Front Playback Volume'
value.0 12
value.1 12
}
control.4 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Front Playback Switch'
value.0 true
value.1 true
}
control.5 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'Surround Playback Volume'
value.0 7
value.1 7
}
control.6 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Surround Playback Switch'
value.0 true
value.1 true
}
control.7 {
comment.access 'read write'
comment.type INTEGER
comment.count 1
comment.range '0 - 31'
iface MIXER
name 'Center Playback Volume'
value 22
}
control.8 {
comment.access 'read write'
comment.type INTEGER
comment.count 1
comment.range '0 - 31'
iface MIXER
name 'LFE Playback Volume'
value 5
}
control.9 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'Center Playback Switch'
value true
}
control.10 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'LFE Playback Switch'
value true
}
control.11 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'Headphone Playback Volume'
value.0 7
value.1 7
}
control.12 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Headphone Playback Switch'
value.0 true
value.1 true
}
control.13 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'CD Playback Volume'
value.0 31
value.1 31
}
control.14 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'CD Playback Switch'
value.0 true
value.1 true
}
control.15 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'Line Playback Volume'
value.0 4
value.1 4
}
control.16 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Line Playback Switch'
value.0 true
value.1 true
}
control.17 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'Aux Playback Volume'
value.0 31
value.1 31
}
control.18 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Aux Playback Switch'
value.0 true
value.1 true
}
control.19 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'Mic Playback Volume'
value.0 0
value.1 0
}
control.20 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Mic Playback Switch'
value.0 false
value.1 false
}
control.21 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 15'
iface MIXER
name 'PC Speaker Playback Volume'
value.0 15
value.1 15
}
control.22 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'PC Speaker Playback Switch'
value.0 false
value.1 false
}
control.23 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 31'
iface MIXER
name 'Mono Playback Volume'
value.0 0
value.1 0
}
control.24 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Mono Playback Switch'
value.0 false
value.1 false
}
control.25 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 15'
iface MIXER
name 'Capture Volume'
value.0 0
value.1 0
}
control.26 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Capture Switch'
value.0 false
value.1 false
}
control.27 {
comment.access 'read write'
comment.type ENUMERATED
comment.count 1
comment.item.0 Mic
comment.item.1 CD
comment.item.2 Aux
comment.item.3 Line
comment.item.4 Mix
comment.item.5 Mono
comment.item.6 Phone
iface MIXER
name 'Capture Source'
value Mic
}
control.28 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Stereo Downmix Switch'
value.0 true
value.1 true
}
control.29 {
comment.access 'read write'
comment.type ENUMERATED
comment.count 1
comment.item.0 '2ch'
comment.item.1 '4ch'
comment.item.2 '6ch'
iface MIXER
name 'Channel Mode'
value '2ch'
}
control.30 {
comment.access read
comment.type IEC958
comment.count 1
iface MIXER
name 'IEC958 Playback Con Mask'
value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
}
control.31 {
comment.access read
comment.type IEC958
comment.count 1
iface MIXER
name 'IEC958 Playback Pro Mask'
value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
}
control.32 {
comment.access 'read write'
comment.type IEC958
comment.count 1
iface MIXER
name 'IEC958 Playback Default'
value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
}
control.33 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 1
iface MIXER
name 'IEC958 Playback Switch'
value true
}
}
|
_________________ Only The Strong Servives |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 11:45 pm Post subject: |
|
|
Also just incase what version of alsa are you using?
Code: |
version 1.0.14rc2 <-- mines
|
_________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Mon Apr 30, 2007 11:46 pm Post subject: good news the error is different bad news its longer |
|
|
localhost ~ # /etc/init.d/alsasound restart
* WARNING: you are stopping a boot service.
* Storing ALSA Mixer Levels ...
ALSA lib conf.c:1587:(snd_config_load1) _toplevel_:194:17:Unexpected char
alsactl: save_state:1253: No soundcards found...
* Error saving levels. [ !! ]
* Killing processes using ALSA ...
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
can't open sequencer [ ok ]
* Unloading ALSA modules ...
* Unloading: snd_seq ... [ ok ]
* Unloading: snd_seq_device ... [ ok ]
* Unloading: snd_hda_intel ... [ ok ]
* Unloading: snd_hda_codec ... [ ok ]
* Unloading: snd_pcm ... [ ok ]
* Unloading: snd_timer ... [ ok ]
* Unloading: snd ... [ ok ]
* Unloading: snd_page_alloc ... [ ok ]
* Loading ALSA modules ...
* Loading: snd-card-0 ... [ ok ]
* Loading: snd-seq ... [ ok ]
* Restoring Mixer Levels ...
ALSA lib conf.c:1587:(snd_config_load1) _toplevel_:194:17:Unexpected char
alsactl: load_state:1311: snd_config_load error: Invalid argument
* Errors while restoring defaults, ignoring |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Mon Apr 30, 2007 11:54 pm Post subject: |
|
|
Ok wait.. are you sure you emerge -C all alsa packages? You should try it gain and make sure they are all out, emerge --search alsa (not they should say not installed ) also post your alsa version. _________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Tue May 01, 2007 12:07 am Post subject: more info |
|
|
version 1.0.14rc2-rc1
i read that 1.0.14rc3 is out but i dont see it available in emerge
i know how to compile stuff
could i just unmerge rc2-rc1 and manually compile rc3? |
|
Back to top |
|
|
xlordt Apprentice
Joined: 18 Apr 2007 Posts: 178
|
Posted: Tue May 01, 2007 12:15 am Post subject: |
|
|
At the beginning when I first installed gentoo I did emerge -C on all of my alsa programs.. then I made sure that they were all really completely out I tried to run alsamixer, alsaconf etc... and non were there.. but You can try a new one though.. now that deppends on what kernel version you have.. because before I moved from slackware to gentoo I had a few slight problems getting alsa installed. _________________ Only The Strong Servives |
|
Back to top |
|
|
rixanon n00b
Joined: 25 Apr 2007 Posts: 49 Location: Colorado
|
Posted: Tue May 01, 2007 12:22 am Post subject: ok |
|
|
ok ppl im a nub and im looking for nub in all the wrong places.
all the info you could possibly need is right here on this page |
|
Back to top |
|
|
|